Jak czytać plik CSV w Python (Moduł, przykłady pand)

⚡ Inteligentne podsumowanie

Plik CSV przechowuje dane tabelaryczne w postaci zwykłego tekstu, z przecinkami oddzielającymi kolumny i znakami nowej linii oddzielającymi wiersze. Tutaj nauczysz się odczytywać i zapisywać pliki CSV w… Python korzystając z wbudowanego modułu csv i biblioteki pandas.

  • 📄 Co to jest: Plik CSV przechowuje dane tabelaryczne w postaci zwykłego tekstu rozdzielonego przecinkami.
  • ???? csv.reader: csv.reader() odczytuje wiersze z pliku CSV w postaci list.
  • 📚 Czytnik słownika: csv.DictReader() odczytuje każdy wiersz do uporządkowanego słownika.
  • ✍️. csv.writer: csv.writer() i writerow() zapisują wiersze do pliku CSV.
  • 🐼 Pandy: pandas.read_csv() i to_csv() odczytują i zapisują pliki CSV w jednym wierszu.
  • 🤖 Pomoc AI: Narzędzia AI, takie jak Copilot, natychmiast generują kod do odczytu i zapisu w formacie CSV.

Odczytaj plik CSV w Python

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.

Pobierz dane 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')])

Wczytaj plik CSV do słownika

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

zapisz plik CSV Python

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.

Zapisz plik CSV za pomocą Pand

FAQ

Plik CSV (wartości rozdzielone przecinkami) to zwykły plik tekstowy, który przechowuje dane tabelaryczne. Każdy wiersz to wiersz, a wartości w każdej kolumnie są rozdzielone przecinkami.

Zaimportuj moduł csv, otwórz plik i przekaż go do csv.reader(), aby wyświetlić wiersze jako listy. Możesz też użyć csv.DictReader(), aby odczytać każdy wiersz jako słownik.

Otwórz plik w trybie zapisu, utwórz plik csv.writer() i wywołaj writerow() dla każdego wiersza lub writerows() dla wielu. Writer zajmie się cudzysłowami i ogranicznikami za Ciebie.

Funkcja csv.DictReader() odczytuje plik CSV do uporządkowanych słowników, używając wiersza nagłówka jako kluczy. Dzięki temu dostęp do każdej wartości można uzyskać po nazwie kolumny, a nie po indeksie.

Wywołaj pandas.read_csv('file.csv'), co spowoduje załadowanie pliku CSV do DataFrame w jednym wierszu. Pandas automatycznie użyje pierwszego wiersza jako nagłówka kolumny.

Asystenci AI, tacy jak GitHub Copilot, automatycznie uzupełniają wywołania plików CSV i Pandas, generują pętle odczytu i zapisu oraz sugerują właściwy ogranicznik lub opcję cytowania na podstawie krótkiego opisu.

Tak. Narzędzia oparte na sztucznej inteligencji mogą automatyzować parsowanie, czyszczenie i konwersję danych CSV, generować potoki Pandas oraz dodawać obsługę błędów w przypadku nieprawidłowo sformatowanych wierszy lub brakujących kolumn.

Użyj wbudowanego modułu CSV do prostego i lekkiego odczytu i zapisu. Wybierz Pandas, gdy potrzebujesz efektywnie filtrować, przekształcać lub analizować duże zbiory danych CSV.

Podsumuj ten post następująco: