Jak czytać plik CSV w Python (Moduł, przykłady pand)
⚡ Inteligentne podsumowanie
A CSV file stores tabular data as plain text, with commas separating columns and newlines separating rows. Here you will learn to read and write CSV files in Python using the built-in csv module and the pandas library.

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.



