Jak czytać plik CSV w Python (Moduł, przykłady pand)
Co to jest plik CSV?
A Plik CSV to prosty typ pliku tekstowego, który wykorzystuje specyficzną strukturę do uporządkowania danych tabelarycznych. Standardowy format pliku CSV jest definiowany przez dane wierszy i kolumn, gdzie znak nowej linii kończy każdy wiersz i rozpoczyna następny wiersz, a każda kolumna jest oddzielona przecinkiem w wierszu.
CSV to powszechny format wymiany danych, ponieważ jest zwarty, prosty i ogólny. Wiele usług online umożliwia użytkownikom eksport danych tabelarycznych ze strony internetowej do pliku CSV. Pliki CSV zostaną otwarte w programie Excel, a prawie wszystkie bazy danych posiadają narzędzie umożliwiające import z plików CSV.
Przykładowy plik CSV
Dane w formie tabel nazywane są także CSV (wartości oddzielone przecinkami) – dosłownie „wartości oddzielone przecinkami”. Jest to format tekstowy przeznaczony do prezentacji danych tabelarycznych. Każda linia pliku jest jedną linią tabeli. Wartości poszczególnych kolumn oddzielane są symbolem separatora – przecinkiem (,), średnikiem (;) lub innym symbolem. CSV można łatwo odczytać i przetworzyć Python.
Rozważ poniższą tabelę
Dane tabeli
Język programowania | Zaprojektowany przez | Pojawiło się | Rozbudowa |
---|---|---|---|
Python | Guido van Rossum | 1991 | .py |
Java | Jakub Goslin | 1995 | .Jawa |
C++ | Bjarne Stroustrup | 1983 | .cpp |
Możesz przedstawić tę tabelę w formacie CSV, jak poniżej.
Dane CSV
Język programowania, Zaprojektowany przez, Pojawił się, Rozszerzenie
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup, 1983, .cpp
Jak widać, każdy wiersz jest nową linią, a każda kolumna jest oddzielona przecinkiem. To jest przykład wyglądu pliku CSV.
Python Moduł CSV
Python udostępnia moduł CSV do obsługi plików CSV. Aby odczytać/zapisać dane, musisz przejść przez wiersze pliku CSV. Aby uzyskać dane z określonych kolumn, należy użyć metody podziału.
Funkcje modułu CSV
W dokumentacji modułu CSV można znaleźć następujące funkcje:
- csv.field_size_limit – zwraca maksymalny rozmiar pola
- csv.get_dialect – pobierz dialekt powiązany z nazwą
- csv.list_dialects – pokaż wszystkie zarejestrowane dialekty
- csv.reader – odczytuje dane z pliku csv
- csv.register_dialect – skojarz dialekt z nazwą
- csv.writer – zapis danych do pliku csv
- csv.unregister_dialect – usuń dialekt powiązany z nazwą rejestru dialektów
- csv.QUOTE_ALL – Cytuj wszystko, niezależnie od rodzaju.
- csv.QUOTE_MINIMAL – Cytuj pola ze znakami specjalnymi
- csv.QUOTE_NONNUMERIC – Podaj wszystkie pola, które nie są wartościami liczbowymi
- csv.QUOTE_NONE – Nie cytuj niczego w wynikach
W tym samouczku skupimy się wyłącznie na funkcjach odczytu i zapisu, które pozwalają edytować, modyfikować i manipulować danymi w pliku CSV.
Jak odczytać plik CSV w Python
Poniżej znajdują się kroki umożliwiające wczytanie pliku CSV Python.
Krok 1) Aby odczytać dane z plików CSV należy skorzystać z funkcji czytnika i wygenerować obiekt czytnika.
Funkcja czytnika została opracowana tak, aby pobierać każdy wiersz pliku i tworzyć listę wszystkich kolumn. Następnie musisz wybrać kolumnę, dla której chcesz mieć zmienne dane.
Brzmi to o wiele bardziej skomplikowanie, niż jest w rzeczywistości. Przyjrzyjmy się temu Python kod do odczytania pliku CSV, a przekonamy się, że praca z plikiem CSV nie jest taka trudna.
#import necessary modules import csv with open('X:\data.csv','rt')as f: data = csv.reader(f) for row in data: print(row)
Krok 2) Kiedy wykonasz powyższy program, wynikiem będzie:
['Programming language; Designed by; Appeared; Extension'] ['Python; Guido van Rossum; 1991; .py'] ['Java; James Gosling; 1995; .java'] ['C++; Bjarne Stroustrup;1983;.cpp']
Jak wczytać plik CSV do słownika w Python
Możesz także użyć DictReadera do odczytu plików CSV. Wyniki są interpretowane jako słownik, w którym wiersz nagłówka jest kluczem, a pozostałe wiersze są wartościami.
Rozważ następujący kod
#import necessary modules import csv reader = csv.DictReader(open("file2.csv")) for raw in reader: print(raw)
Wynikiem tego kodu jest:
OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')]) OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')]) OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])
I w ten sposób odczytanie danych z pliku CSV jest znacznie łatwiejsze niż wcześniejsza metoda. Nie jest to jednak najlepszy sposób odczytywania danych.
Jak zapisać plik CSV w Python
Oto jak zapisać plik CSV Python:
Jeśli masz zestaw danych, który chcesz zapisać w pliku CSV, musisz użyć funkcji write(). Aby iterować dane po wierszach (linii), musisz użyć funkcji writerow().
Rozważmy następujący przykład. Zapisujemy dane do pliku „writeData.csv”, gdzie ogranicznikiem jest apostrof.
#import necessary modules import csv with open('X:\writeData.csv', mode='w') as file: writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) #way to write to csv file writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension']) writer.writerow(['Python', 'Guido van Rossum', '1991', '.py']) writer.writerow(['Java', 'James Gosling', '1995', '.java']) writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])
Wynik w pliku csv to:
Programming language, Designed by, Appeared, Extension Python, Guido van Rossum, 1991, .py Java, James Gosling, 1995, .java C++, Bjarne Stroustrup,1983,.cpp
Przeczytaj plik CSV za pomocą Pand
Pandas to biblioteka typu open source, która umożliwia importowanie plików CSV Python i przeprowadzać manipulację danymi. Pandy umożliwiają łatwe tworzenie, manipulowanie i usuwanie danych.
Musisz zainstalować bibliotekę pand za pomocą polecenia pip install pandas . W Windows, wykonasz to polecenie w wierszu poleceń w systemie Linux w terminalu.
Odczyt pliku CSV do ramki DataFrame pandy jest bardzo szybki i łatwy:
#import necessary modules import pandas result = pandas.read_csv('X:\data.csv') print(result)
Wynik przeczytaj CSV Pandy przykład:
Programming language, Designed by, Appeared, Extension 0 Python, Guido van Rossum, 1991, .py 1 Java, James Gosling, 1995, .java 2 C++, Bjarne Stroustrup,1983,.cpp
Bardzo przydatna biblioteka. W zaledwie trzech linijkach kodu uzyskasz taki sam wynik jak wcześniej. Pandy wiedzą, że pierwsza linia pliku CSV zawiera nazwy kolumn i użyje ich automatycznie.
Zapisz plik CSV za pomocą Pand
Pisanie do pliku CSV za pomocą Pandas jest tak proste jak czytanie. Tutaj możesz się o tym przekonać. Najpierw musisz utworzyć DataFrame na podstawie następujących Python napisz do kodu CSV.
from pandas import DataFrame C = {'Programming language': ['Python','Java', 'C++'], 'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'], 'Appeared': ['1991', '1995', '1985'], 'Extension': ['.py', '.java', '.cpp'], } df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension']) export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored print (df)
Oto wynik
Programming language, Designed by, Appeared, Extension 0 Python, Guido van Rossum, 1991, .py 1 Java, James Gosling, 1995, .java 2 C++, Bjarne Stroustrup,1983,.cpp
Plik CSV jest tworzony w określonej lokalizacji.
Podsumowanie
Więc teraz wiesz, jak używać metody „csv”, a także czytać i zapisywać dane w formacie CSV. Pliki CSV są szeroko stosowane w aplikacjach programowych, ponieważ są łatwe do odczytania i zarządzania, a ich niewielki rozmiar sprawia, że są stosunkowo szybkie w przetwarzaniu i przesyłaniu.
Moduł csv udostępnia różne funkcje i klasy, które umożliwiają łatwe czytanie i pisanie. Możesz zajrzeć do urzędnika Python dokumentacja i znajdź więcej interesujących wskazówek i modułów. CSV to najlepszy sposób na zapisywanie, przeglądanie i wysyłanie danych. Właściwie nie jest tak trudno się tego nauczyć, jak się wydaje na początku. Ale z odrobiną praktyki opanujesz to.
Pandy to świetna alternatywa do odczytu plików CSV.
Istnieją również inne sposoby analizowania plików tekstowych za pomocą bibliotek takich jak ANTLR, PLY i PlyPlus. Wszystkie radzą sobie z analizą o dużym obciążeniu, a jeśli prosta manipulacja ciągami nie działa, istnieją wyrażenia regularne, których można użyć.