Pandas CSV-Dateien
CSV (Comma-Separated Values, manchmal auch character-separated values genannt, weil das Trennzeichen kein Komma sein muss) speichert tabellarische Daten (Zahlen und Text) in reinen Textdateien.
CSV ist ein gängiges, relativ einfaches Dateiformat, das von Anwendern, Unternehmen und der Wissenschaft häufig verwendet wird.
Pandas kann CSV-Dateien sehr einfach verarbeiten. Zu den gängigen Methoden gehören:
| Methodenname | Beschreibung | Häufige Parameter |
|---|---|---|
pd.read_csv() | Daten aus einer CSV-Datei einlesen und als DataFrame laden | filepath_or_buffer(Pfad oder Dateiobjekt),sep(Trennzeichen),header(Header),names(benutzerdefinierte Spaltennamen),dtype(Datentypen),index_col(Indexspalte) |
DataFrame.to_csv() | Ein DataFrame in eine CSV-Datei schreiben | path_or_buffer(Zielpfad oder Dateiobjekt),sep(Trennzeichen),index(ob der Index geschrieben werden soll),columns(angegebene Spalten),header(ob Spaltennamen geschrieben werden sollen),mode(Schreibmodus) |
Dieser Artikel verwendetnba.csvals Beispiel. Sie könnennba.csv herunterladenodernba.csv öffnen, um sie anzusehen.
pd.read_csv() - CSV-Dateien lesen
read_csv() ist die Hauptmethode zum Lesen von Daten aus einer CSV-Datei, wobei die Daten in ein DataFrame geladen werden.
import pandas as pd
# 读取 CSV 文件,并自定义列名和分隔符
df = pd.read_csv('data.csv', sep=';', header=0, names=['A', 'B', 'C'], dtype={'A': int, 'B': float})
print(df)
Häufige read_csv-Parameter:
| Parameter | Beschreibung | Standardwert |
|---|---|---|
filepath_or_buffer | Der Pfad zur CSV-Datei oder ein Dateiobjekt (unterstützt URL, Dateipfad, Dateiobjekt usw.) | Erforderlicher Parameter |
sep | Definiert das Feldtrennzeichen. Der Standardwert ist ein Komma (,), das in andere Zeichen geändert werden kann, wie z. B. ein Tabulator (\t) | ',' |
header | Geben Sie die Zeilennummer an, die als Spaltenkopf verwendet werden soll. Der Standardwert ist 0 (bedeutet die erste Zeile), oder setzen Sie aufNonekeinen Header | 0 |
names | Benutzerdefinierte Spaltennamen. Übergeben Sie eine Liste von Spaltennamen. | None |
index_col | Die Spaltennummer oder der Spaltenname der Spalte, die als Zeilenindex verwendet wird. | None |
usecols | Angegebene Spalten lesen. Dabei kann es sich um Spaltennamen oder Spaltenindizes handeln. | None |
dtype | Erzwingen, dass Spalten in angegebene Datentypen konvertiert werden. | None |
skiprows | Überspringen Sie eine angegebene Anzahl von Zeilen am Anfang der Datei oder übergeben Sie eine Liste von Zeilennummern. | None |
nrows | Die ersten N Datenzeilen lesen. | None |
na_values | Geben Sie an, welche Werte als fehlende Werte (NaN) behandelt werden sollen. | None |
skipfooter | Überspringen Sie eine angegebene Anzahl von Zeilen am Ende der Datei. | 0 |
encoding | Das Kodierungsformat der Datei (wie z. B.utf-8,latin1usw.) | None |
Lies die Daten der Datei nba.csv:
Beispiel
df = pd.read_csv('nba.csv')
print(df.to_string())
to_string()Wird verwendet, um Daten vom Typ DataFrame zurückzugeben. Wenn diese Funktion nicht verwendet wird, sind die Ausgabedaten die ersten 5 Zeilen und die letzten 5 Zeilen der Daten, wobei der mittlere Teil stattdessen durch...ersetzt wird.
Beispiel
df = pd.read_csv('nba.csv')
print(df)
Name Team Number Position Age Height Weight College Salary
0 Avery Bradley Boston Celtics 0.0 PG 25.0 6-2 180.0 Texas 7730337.0
1 Jae Crowder Boston Celtics 99.0 SF 25.0 6-6 235.0 Marquette 6796117.0
2 John Holland Boston Celtics 30.0 SG 27.0 6-5 205.0 Boston University NaN
3 R.J. Hunter Boston Celtics 28.0 SG 22.0 6-5 185.0 Georgia State 1148640.0
4 Jonas Jerebko Boston Celtics 8.0 PF 29.0 6-10 231.0 NaN 5000000.0
.. ... ... ... ... ... ... ... ... ...
453 Shelvin Mack Utah Jazz 8.0 PG 26.0 6-3 203.0 Butler 2433333.0
454 Raul Neto Utah Jazz 25.0 PG 24.0 6-1 179.0 NaN 900000.0
455 Tibor Pleiss Utah Jazz 21.0 C 26.0 7-3 256.0 NaN 2900000.0
456 Jeff Withey Utah Jazz 24.0 C 26.0 7-0 231.0 Kansas 947276.0
457 NaN NaN NaN NaN NaN NaN NaN NaN NaN
df.to_csv() - DataFrame in CSV-Datei schreiben
to_csv() ist eine Methode, um ein DataFrame in eine CSV-Datei zu schreiben. Sie unterstützt Einstellungen wie benutzerdefinierte Trennzeichen, Spaltennamen und ob der Index einbezogen werden soll.
import pandas as pd
# 假设 df 是一个已有的 DataFrame
df.to_csv('output.csv', index=False, header=True, columns=['A', 'B'])
Übliche to_csv-Parameter:
| Parameter | Beschreibung | Standardwert |
|---|---|---|
path_or_buffer | Der Pfad zur CSV-Datei oder ein Dateiobjekt (unterstützt Dateipfade, Dateiobjekte) | Erforderlicher Parameter |
sep | Definiert das Feldtrennzeichen. Der Standardwert ist ein Komma (,), das in andere Zeichen geändert werden kann, wie z. B. ein Tabulator (\t) | ',' |
index | Ob der Zeilenindex geschrieben werden soll. Standard istTruewas bedeutet, dass der Index geschrieben wird. | True |
columns | Gibt die zu schreibenden Spalten an. Kann eine Liste von Spaltennamen sein. | None |
header | Ob Spaltennamen geschrieben werden sollen. Standard istTruebedeutet, dass Spaltennamen geschrieben werden. Setzen Sie aufFalsebedeutet, dass Spaltennamen nicht geschrieben werden. | True |
mode | Der Modus zum Schreiben der Datei. Standard istw(Schreibmodus), kann aufa(Anhängemodus) | 'w' |
encoding | Das Kodierungsformat der Datei, wie z. B.utf-8,latin1warten | None |
line_terminator | Definiert das Zeilenendezeichen. Standard ist\n | None |
quoting | Legt fest, wie die Daten in der Datei in Anführungszeichen gesetzt werden (0-3; siehe Dokumentation für die spezifischen Quoting-Methoden.) | None |
quotechar | Legt das Zeichen fest, das für das Quoting verwendet wird. Standard sind doppelte Anführungszeichen." | '"' |
date_format | Benutzerdefiniertes Datumsformat. Wenn eine Spalte Datumsdaten enthält, können Sie diesen Parameter verwenden, um das Datumsformat anzugeben. | None |
doublequote | Wenn festgelegt aufTrue, dann wird beim Schreiben Text, der Anführungszeichen enthält, in doppelte Anführungszeichen eingeschlossen. | True |
Wir können auch dieto_csv()-Methode verwenden, um das DataFrame als CSV-Datei zu speichern:
Beispiel
# Drei Felder: name, site, age
nme = ["Google", "Example", "Taobao", "Wiki"]
st = ["www.google.com", "www.example.com", "www.taobao.com", "www.wikipedia.org"]
ag = [90, 40, 80, 98]
# Wörterbuch
dict = {'name': nme, 'site': st, 'age': ag}
df = pd.DataFrame(dict)
# DataFrame speichern
df.to_csv('site.csv')
Nach erfolgreicher Ausführung öffnen wir die Datei site.csv und das Ergebnis wird wie folgt angezeigt:

Datenverarbeitung
head()
head( n )Methode zum Lesen der ersten n Zeilen. Wenn der Parameter n nicht angegeben wird, werden standardmäßig 5 Zeilen zurückgegeben.
Beispiel - Die ersten 5 Zeilen lesen
df = pd.read_csv('nba.csv')
print(df.head())
Das Ausgabeergebnis ist:
Name Team Number Position Age Height Weight College Salary
0 Avery Bradley Boston Celtics 0.0 PG 25.0 6-2 180.0 Texas 7730337.0
1 Jae Crowder Boston Celtics 99.0 SF 25.0 6-6 235.0 Marquette 6796117.0
2 John Holland Boston Celtics 30.0 SG 27.0 6-5 205.0 Boston University NaN
3 R.J. Hunter Boston Celtics 28.0 SG 22.0 6-5 185.0 Georgia State 1148640.0
4 Jonas Jerebko Boston Celtics 8.0 PF 29.0 6-10 231.0 NaN 5000000.0
Beispiel - Die ersten 10 Zeilen lesen
df = pd.read_csv('nba.csv')
print(df.head(10))
Das Ausgabeergebnis ist:
Name Team Number Position Age Height Weight College Salary
0 Avery Bradley Boston Celtics 0.0 PG 25.0 6-2 180.0 Texas 7730337.0
1 Jae Crowder Boston Celtics 99.0 SF 25.0 6-6 235.0 Marquette 6796117.0
2 John Holland Boston Celtics 30.0 SG 27.0 6-5 205.0 Boston University NaN
3 R.J. Hunter Boston Celtics 28.0 SG 22.0 6-5 185.0 Georgia State 1148640.0
4 Jonas Jerebko Boston Celtics 8.0 PF 29.0 6-10 231.0 NaN 5000000.0
5 Amir Johnson Boston Celtics 90.0 PF 29.0 6-9 240.0 NaN 12000000.0
6 Jordan Mickey Boston Celtics 55.0 PF 21.0 6-8 235.0 LSU 1170960.0
7 Kelly Olynyk Boston Celtics 41.0 C 25.0 7-0 238.0 Gonzaga 2165160.0
8 Terry Rozier Boston Celtics 12.0 PG 22.0 6-2 190.0 Louisville 1824360.0
9 Marcus Smart Boston Celtics 36.0 PG 22.0 6-4 220.0 Oklahoma State 3431040.0
tail()
tail( n )Methode zum Lesen der letzten n Zeilen. Wenn der Parameter n nicht angegeben wird, werden standardmäßig 5 Zeilen zurückgegeben. Bei leeren Zeilen geben die Werte jedes FeldsNaN zurück。
Beispiel - Die letzten 5 Zeilen lesen
df = pd.read_csv('nba.csv')
print(df.tail())
Das Ausgabeergebnis ist:
Name Team Number Position Age Height Weight College Salary 453 Shelvin Mack Utah Jazz 8.0 PG 26.0 6-3 203.0 Butler 2433333.0 454 Raul Neto Utah Jazz 25.0 PG 24.0 6-1 179.0 NaN 900000.0 455 Tibor Pleiss Utah Jazz 21.0 C 26.0 7-3 256.0 NaN 2900000.0 456 Jeff Withey Utah Jazz 24.0 C 26.0 7-0 231.0 Kansas 947276.0 457 NaN NaN NaN NaN NaN NaN NaN NaN NaN
Beispiel - Die letzten 10 Zeilen lesen
df = pd.read_csv('nba.csv')
print(df.tail(10))
Das Ausgabeergebnis ist:
Name Team Number Position Age Height Weight College Salary
448 Gordon Hayward Utah Jazz 20.0 SF 26.0 6-8 226.0 Butler 15409570.0
449 Rodney Hood Utah Jazz 5.0 SG 23.0 6-8 206.0 Duke 1348440.0
450 Joe Ingles Utah Jazz 2.0 SF 28.0 6-8 226.0 NaN 2050000.0
451 Chris Johnson Utah Jazz 23.0 SF 26.0 6-6 206.0 Dayton 981348.0
452 Trey Lyles Utah Jazz 41.0 PF 20.0 6-10 234.0 Kentucky 2239800.0
453 Shelvin Mack Utah Jazz 8.0 PG 26.0 6-3 203.0 Butler 2433333.0
454 Raul Neto Utah Jazz 25.0 PG 24.0 6-1 179.0 NaN 900000.0
455 Tibor Pleiss Utah Jazz 21.0 C 26.0 7-3 256.0 NaN 2900000.0
456 Jeff Withey Utah Jazz 24.0 C 26.0 7-0 231.0 Kansas 947276.0
457 NaN NaN NaN NaN NaN NaN NaN NaN NaN
info()
Die Methode info() gibt einige grundlegende Informationen über die Tabelle zurück:
Beispiel
df = pd.read_csv('nba.csv')
print(df.info())
Das Ausgabeergebnis ist:
<class 'pandas.core.frame.DataFrame'> RangeIndex: 458 entries, 0 to 457 # 行数,458 行,第一行编号为 0 Data columns (total 9 columns): # 列数,9列 # Column Non-Null Count Dtype # 各列的数据类型 --- ------ -------------- ----- 0 Name 457 non-null object 1 Team 457 non-null object 2 Number 457 non-null float64 3 Position 457 non-null object 4 Age 457 non-null float64 5 Height 457 non-null object 6 Weight 457 non-null float64 7 College 373 non-null object # non-null,意思为非空的数据 8 Salary 446 non-null float64 dtypes: float64(4), object(5) # 类型
Nicht-Null bedeutet nichtleere Daten. Aus den oben stehenden Informationen können wir ersehen, dass es insgesamt 458 Zeilen gibt und das Feld College die meisten Nullwerte aufweist.
Andere Erweiterungen