Lesen und Schreiben von CSV-Dateien in Python mit dem CSV-Modul & Pandas

Inhaltsverzeichnis:

Anonim

Was ist eine CSV-Datei?

Eine CSV-Datei ist eine Art Klartextdatei, die eine bestimmte Strukturierung zum Anordnen von Tabellendaten verwendet. CSV ist ein gängiges Format für den Datenaustausch, da es kompakt, einfach und allgemein ist. Bei vielen Onlinediensten können Benutzer Tabellendaten von der Website in eine CSV-Datei exportieren. CSV-Dateien werden in Excel geöffnet, und fast alle Datenbanken verfügen über ein Tool, mit dem Sie aus CSV-Dateien importieren können. Das Standardformat wird durch Zeilen- und Spaltendaten definiert. Darüber hinaus wird jede Zeile durch eine neue Zeile beendet, um die nächste Zeile zu beginnen. Auch innerhalb der Zeile wird jede Spalte durch ein Komma getrennt.

In diesem Tutorial lernen Sie:

  • Was ist eine CSV-Datei?
  • CSV-Beispieldatei.
  • Python CSV-Modul
  • CSV-Modulfunktionen
  • CSV-Dateien lesen
  • Lesen als Wörterbuch
  • Schreiben in CSV-Dateien
  • CSV-Dateien mit Pandas lesen
  • Schreiben in CSV-Dateien mit Pandas

CSV-Beispieldatei.

Daten in Form von Tabellen werden auch als CSV (durch Kommas getrennte Werte) bezeichnet - wörtlich "durch Kommas getrennte Werte". Dies ist ein Textformat für die Darstellung von Tabellendaten. Jede Zeile der Datei ist eine Zeile der Tabelle. Die Werte einzelner Spalten werden durch ein Trennsymbol getrennt - ein Komma (,), ein Semikolon (;) oder ein anderes Symbol. CSV kann von Python leicht gelesen und verarbeitet werden.

Betrachten Sie die folgende Registerkarte

Tabellendaten

Programmiersprache Entworfen von Erschien Erweiterung
Python Guido van Rossum 1991 .py
Java James Gosling 1995 .Java
C ++ Bjarne Stroustrup 1983 .cpp

Sie können diese Tabelle in csv wie folgt darstellen.

CSV-Daten

Programmiersprache, Entworfen von, Erschienen, Erweiterung

Python, Guido van Rossum, 1991, .py

Java, James Gosling, 1995, .java

C ++, Bjarne Stroustrup, 1983, .cpp

Wie Sie sehen, ist jede Zeile eine neue Zeile und jede Spalte wird durch ein Komma getrennt. Dies ist ein Beispiel dafür, wie eine CSV-Datei aussieht.

Laden Sie CSV-Daten herunter

Python CSV-Modul

Python bietet ein CSV-Modul für die Verarbeitung von CSV-Dateien. Um Daten zu lesen / schreiben, müssen Sie die Zeilen der CSV durchlaufen. Sie müssen die Split-Methode verwenden, um Daten aus angegebenen Spalten abzurufen.

CSV-Modulfunktionen

In der Dokumentation zum CSV-Modul finden Sie folgende Funktionen:

  • csv.field_size_limit - Gibt die maximale Feldgröße zurück
  • csv.get_dialect - Ruft den Dialekt ab, der dem Namen zugeordnet ist
  • csv.list_dialects - Alle registrierten Dialekte anzeigen
  • csv.reader - liest Daten aus einer CSV-Datei
  • csv.register_dialect - Dialekt mit Name verknüpfen
  • csv.writer - Daten in eine CSV-Datei schreiben
  • csv.unregister_dialect - Löscht den Dialekt, der dem Namen der Dialektregistrierung zugeordnet ist
  • csv.QUOTE_ALL - Zitiert alles, unabhängig vom Typ.
  • csv.QUOTE_MINIMAL - Anführungszeichen mit Sonderzeichen
  • csv.QUOTE_NONNUMERIC - Zitieren Sie alle Felder, die keine Zahlen sind
  • csv.QUOTE_NONE - Zitieren Sie nichts in der Ausgabe

In diesem Tutorial konzentrieren wir uns nur auf die Lese- und Schreibfunktionen, mit denen Sie die Daten in einer CSV-Datei bearbeiten, ändern und bearbeiten können.

So lesen Sie eine CSV-Datei

Um Daten aus CSV-Dateien zu lesen, müssen Sie die Reader-Funktion verwenden, um ein Reader-Objekt zu generieren.

Die Reader-Funktion wurde entwickelt, um jede Zeile der Datei zu nehmen und eine Liste aller Spalten zu erstellen. Dann müssen Sie die Spalte auswählen, für die Sie die Variablendaten möchten.

Es klingt viel komplizierter als es ist. Schauen wir uns dieses Beispiel an und wir werden feststellen, dass die Arbeit mit CSV-Dateien nicht so schwierig ist.

#import necessary modulesimport csvwith open('X:\data.csv','rt')as f:data = csv.reader(f)for row in data:print(row)

Wenn Sie das obige Programm ausführen, lautet die Ausgabe wie folgt:

['Programming language; Designed by; Appeared; Extension']['Python; Guido van Rossum; 1991; .py']['Java; James Gosling; 1995; .java']['C++; Bjarne Stroustrup;1983;.cpp']

Lesen einer CSV als Wörterbuch

Sie können auch DictReader verwenden, um CSV-Dateien zu lesen. Die Ergebnisse werden als Wörterbuch interpretiert, in dem die Kopfzeile der Schlüssel und andere Zeilen Werte sind.

Betrachten Sie den folgenden Code

#import necessary modulesimport csvreader = csv.DictReader(open("file2.csv"))for raw in reader:print(raw)

Das Ergebnis dieses Codes ist:

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

Und diese Art, Daten aus einer CSV-Datei zu lesen, ist viel einfacher als die frühere Methode. Dies ist jedoch nicht der beste Weg, um Daten zu lesen.

Wie schreibe ich eine CSV-Datei?

Wenn Sie einen Datensatz haben, den Sie in einer CSV-Datei speichern möchten, müssen Sie die Funktion writer () verwenden. Um die Daten über die Zeilen (Zeilen) zu iterieren, müssen Sie die Funktion writerow () verwenden.

Betrachten Sie das folgende Beispiel. Wir schreiben Daten in eine Datei "writeData.csv", in der das Trennzeichen ein Apostroph ist.

#import necessary modulesimport csvwith open('X:\writeData.csv', mode='w') as file:writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)#way to write to csv filewriter.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'])

Ergebnis in der CSV-Datei ist:

Programming language, Designed by, Appeared, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp

CSV-Dateien mit Pandas lesen

Pandas ist eine OpenSource-Bibliothek, mit der Sie Daten in Python bearbeiten können. Pandas bieten eine einfache Möglichkeit, Daten zu erstellen, zu bearbeiten und zu löschen.

Sie müssen die Pandas-Bibliothek mit dem Befehl pip install pandas installieren. In Windows führen Sie diesen Befehl in der Eingabeaufforderung unter Linux im Terminal aus.

Das Einlesen der CSV in einen Pandas DataFrame ist sehr schnell und einfach:

#import necessary modulesimport pandasresult = pandas.read_csv('X:\data.csv')print(result)

Ergebnis:

Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp 

Sehr nützliche Bibliothek. In nur drei Codezeilen erhalten Sie das gleiche Ergebnis wie zuvor. Pandas wissen, dass die erste Zeile der CSV Spaltennamen enthält, und sie werden automatisch verwendet.

Schreiben in CSV-Dateien mit Pandas

Das Schreiben in eine CSV-Datei mit Pandas ist so einfach wie das Lesen. Hier können Sie davon überzeugen. Zuerst müssen Sie DataFrame basierend auf dem folgenden Code erstellen.

from pandas import DataFrameC = {'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 storedprint (df)

Hier ist die Ausgabe

Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp

Die CSV-Datei wird am angegebenen Speicherort erstellt.

Fazit

Jetzt wissen Sie also, wie Sie die Methode 'csv' verwenden und Daten im CSV-Format lesen und schreiben. CSV-Dateien werden häufig in Softwareanwendungen verwendet, da sie leicht zu lesen und zu verwalten sind und aufgrund ihrer geringen Größe relativ schnell verarbeitet und übertragen werden können.

Das CSV-Modul bietet verschiedene Funktionen und Klassen, mit denen Sie leicht lesen und schreiben können. In der offiziellen Python-Dokumentation finden Sie weitere interessante Tipps und Module. CSV ist der beste Weg zum Speichern, Anzeigen und Senden von Daten. Eigentlich ist es nicht so schwer zu lernen, wie es am Anfang scheint. Aber mit ein wenig Übung wirst du es meistern.

Pandas ist eine großartige Alternative zum Lesen von CSV-Dateien.

Es gibt auch andere Möglichkeiten, Textdateien mit Bibliotheken wie ANTLR, PLY und PlyPlus zu analysieren. Sie können alle Hochleistungs-Parsing verarbeiten. Wenn die einfache String-Manipulation nicht funktioniert, können Sie reguläre Ausdrücke verwenden.