bedingte Zeile Lesen der csv in pandas
Habe ich große csvs wo bin ich nur daran interessiert, eine Teilmenge der Zeilen. In bestimmten, würde ich mag zu Lesen, in all den Zeilen, die auftreten, bevor eine bestimmte Bedingung erfüllt ist.
Zum Beispiel, wenn read_csv würde die Ausbeute der dataframe:
A B C
1 34 3.20 'b'
2 24 9.21 'b'
3 34 3.32 'c'
4 24 24.3 'c'
5 35 1.12 'a'
...
1e9 42 2.15 'd'
gibt es eine Möglichkeit, Lesen Sie alle Zeilen in der csv-bis Spalte B größer als 10 ist. In dem obigen Beispiel, würde ich mag zu Lesen, in:
A B C
1 34 3.20 'b'
2 24 9.21 'b'
3 34 3.32 'c'
4 24 24.3 'c'
Ich wissen, wie ich werfen diese Zeilen habe ich einmal gelesen das dataframe, aber an diesem Punkt, ich habe schon alle, dass die Berechnung des Lesens. Ich habe keinen Zugriff auf den index der letzten Zeile vor dem Einlesen der csv-Datei (keine skipfooter bitte)
csv
, greifen die Zeilen ein zu einer Zeit, Sachen, die Sie in eine Liste von Listen, stoppen sobald Sie die Letzte Zeile, die Sie möchten, und erstellen Sie dann eine DataFrame
aus, die resultierende Liste von Listen.Sie konnte Lesen die csv in Stücke schneiden und nur angehängt, wenn die Teilmenge erfüllt Ihre Bedingung
InformationsquelleAutor eretmochelys | 2015-01-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du Lesen könntest die csv in Stücke schneiden. Da
pd.read_csv
zurück einen iterator, wenn diechunksize
parameter angegeben ist, können Sieitertools.takewhile
zu Lesen, dass nur so viele Stücke, wie Sie benötigen, ohne Lesen der gesamten Datei.Oder, um zu vermeiden, dass die Verwendung
df.loc[mask]
zu entfernen unerwünschte Zeilen aus der letzten chunk, vielleicht eine sauberere Lösung wäre, um eine benutzerdefinierte generator:chunk.ix[-1, 'B']
?Danke, du hast Recht. Auch
chunk.ix[-1, 'B']
zurückkehren würde der falsche Wert, wennchunk
's index enthalten -1 als Wert.InformationsquelleAutor unutbu
Ich würde gehen den einfachen Weg beschrieben hier:
http://pandas.pydata.org/pandas-docs/stable/indexing.html#boolean-indexing
InformationsquelleAutor joanwa
Können Sie die integrierte-in
csv
Modul zur Berechnung der entsprechenden Zeilennummer. Dann nutzen Siepd.read_csv
mit dernrows
argument:InformationsquelleAutor jpp