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:

MethodennameBeschreibungHäufige Parameter
pd.read_csv()Daten aus einer CSV-Datei einlesen und als DataFrame ladenfilepath_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 schreibenpath_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:

ParameterBeschreibungStandardwert
filepath_or_bufferDer Pfad zur CSV-Datei oder ein Dateiobjekt (unterstützt URL, Dateipfad, Dateiobjekt usw.)Erforderlicher Parameter
sepDefiniert das Feldtrennzeichen. Der Standardwert ist ein Komma (,), das in andere Zeichen geändert werden kann, wie z. B. ein Tabulator (\t)','
headerGeben Sie die Zeilennummer an, die als Spaltenkopf verwendet werden soll. Der Standardwert ist 0 (bedeutet die erste Zeile), oder setzen Sie aufNonekeinen Header0
namesBenutzerdefinierte Spaltennamen. Übergeben Sie eine Liste von Spaltennamen.None
index_colDie Spaltennummer oder der Spaltenname der Spalte, die als Zeilenindex verwendet wird.None
usecolsAngegebene Spalten lesen. Dabei kann es sich um Spaltennamen oder Spaltenindizes handeln.None
dtypeErzwingen, 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
nrowsDie ersten N Datenzeilen lesen.None
na_valuesGeben 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
encodingDas Kodierungsformat der Datei (wie z. B.utf-8,latin1usw.)None

Lies die Daten der Datei nba.csv:

Beispiel

import pandas as pd

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

import pandas as pd

df = pd.read_csv('nba.csv')

print(df)
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
..             ...             ...     ...      ...   ...    ...     ...                ...        ...
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:

ParameterBeschreibungStandardwert
path_or_bufferDer Pfad zur CSV-Datei oder ein Dateiobjekt (unterstützt Dateipfade, Dateiobjekte)Erforderlicher Parameter
sepDefiniert das Feldtrennzeichen. Der Standardwert ist ein Komma (,), das in andere Zeichen geändert werden kann, wie z. B. ein Tabulator (\t)','
indexOb der Zeilenindex geschrieben werden soll. Standard istTruewas bedeutet, dass der Index geschrieben wird.True
columnsGibt die zu schreibenden Spalten an. Kann eine Liste von Spaltennamen sein.None
headerOb Spaltennamen geschrieben werden sollen. Standard istTruebedeutet, dass Spaltennamen geschrieben werden. Setzen Sie aufFalsebedeutet, dass Spaltennamen nicht geschrieben werden.True
modeDer Modus zum Schreiben der Datei. Standard istw(Schreibmodus), kann aufa(Anhängemodus)'w'
encodingDas Kodierungsformat der Datei, wie z. B.utf-8,latin1wartenNone
line_terminatorDefiniert das Zeilenendezeichen. Standard ist\nNone
quotingLegt fest, wie die Daten in der Datei in Anführungszeichen gesetzt werden (0-3; siehe Dokumentation für die spezifischen Quoting-Methoden.)None
quotecharLegt das Zeichen fest, das für das Quoting verwendet wird. Standard sind doppelte Anführungszeichen."'"'
date_formatBenutzerdefiniertes Datumsformat. Wenn eine Spalte Datumsdaten enthält, können Sie diesen Parameter verwenden, um das Datumsformat anzugeben.None
doublequoteWenn 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

import pandas as pd
   
# 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

import pandas as pd

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

import pandas as pd

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

import pandas as pd

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

import pandas as pd

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

import pandas as pd

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