Sie können skiprows
anstelle einer Ganzzahl eine Liste mit Zeilennummern übergeben .
Wenn Sie der Funktion die Ganzzahl 10 geben, überspringen Sie nur die ersten 10 Zeilen.
Um die erste Zeile 0 (als Überschrift) beizubehalten und dann alles andere bis zur Zeile 10 zu überspringen, können Sie schreiben:
pd.read_csv('test.csv', sep='|', skiprows=range(1, 10))
Andere Möglichkeiten zum Überspringen von Zeilen mit read_csv
Die beiden Hauptmethoden zum Steuern, welche Zeilen read_csv
verwendet werden, sind die Parameter header
oder skiprows
.
Angenommen, wir haben die folgende CSV-Datei mit einer Spalte:
a
b
c
d
e
f
In jedem der folgenden Beispiele ist diese Datei f = io.StringIO("\n".join("abcdef"))
.
Lesen Sie alle Zeilen als Werte (kein Header, standardmäßig Ganzzahlen)
>>> pd.read_csv(f, header=None)
0
0 a
1 b
2 c
3 d
4 e
5 f
Verwenden Sie eine bestimmte Zeile als Überschrift (überspringen Sie alle Zeilen davor):
>>> pd.read_csv(f, header=3)
d
0 e
1 f
Verwenden Sie mehrere Zeilen als Kopfzeile, um einen MultiIndex zu erstellen (überspringen Sie alle Zeilen vor der zuletzt angegebenen Kopfzeile):
>>> pd.read_csv(f, header=[2, 4])
c
e
0 f
Überspringen Sie N Zeilen vom Anfang der Datei (die erste Zeile, die nicht übersprungen wird, ist die Kopfzeile):
>>> pd.read_csv(f, skiprows=3)
d
0 e
1 f
Überspringen Sie eine oder mehrere Zeilen, indem Sie die Zeilenindizes angeben (die erste Zeile, die nicht übersprungen wird, ist die Kopfzeile):
>>> pd.read_csv(f, skiprows=[2, 4])
a
0 b
1 d
2 f
Um die Antwort von @ AlexRiley zu erweitern, verwendet das
skiprows
Argument eine Liste von Zahlen, die bestimmt, welche Zeilen übersprungen werden sollen. Damit:pd.read_csv('test.csv', sep='|', skiprows=range(1, 10))
ist das gleiche wie:
pd.read_csv('test.csv', sep='|', skiprows=[1,2,3,4,5,6,7,8,9])
Der beste Weg, um bestimmte Zeilen zu ignorieren, besteht darin, eine Ignorierliste zu erstellen (entweder manuell oder mit einer solchen Funktion
range
, die eine Liste von Ganzzahlen zurückgibt) und an diese zu übergebenskiprows
.quelle
Wenn Sie eine lange CSV-Datei durchlaufen, können Sie das Argument chunksize verwenden . Wenn Sie es aus irgendeinem Grund manuell durchlaufen müssen, können Sie Folgendes versuchen, solange Sie wissen, wie viele Iterationen Sie durchlaufen müssen:
for i in range(num_iters): pd.read_csv('test.csv', sep='|', header=0, skiprows = range(i*10 + 1, (i+1)*10), nrows=10)
quelle
Wenn Sie bestimmte Zeilen überspringen / löschen müssen, sagen Sie die ersten 3 Zeilen (dh 0,1,2) und dann 2 weitere Zeilen (dh 4,5). Sie können Folgendes verwenden, um die Kopfzeile beizubehalten:
df = pd.read_csv(file_in, delimiter='\t', skiprows=[0,1,2,4,5], encoding='utf-16', usecols=cols)
quelle