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.

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

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ć.