Ich hatte mehrere Möglichkeiten, Pandas für interne Entwicklungsaufgaben zu verwenden. Ich frage mich, wie es geht, weil es nicht so häufig ist Es gibt viele Dinge, wie man es überhaupt macht. Da es aufgrund seiner Natur viele Möglichkeiten gibt, mehrere GB Daten zu verarbeiten, Ich werde die Methode aktualisieren, um solche Fälle von Zeit zu Zeit zu behandeln. Daher wird die Komposition in der Form beschrieben, was Sie tun möchten ⇒ wie es geht.
Übrigens ist es nicht so, als würde man maschinelles Gorigori-Lernen machen Bitte beachten Sie, dass darüber nicht gesprochen wird.
Erstens kann nichts getan werden, wenn csv nicht gelesen werden kann. Also wie man liest. Die Grundlagen sind wie folgt.
df = pd.read_csv("Dateiname")
Wenn die Dateigröße jedoch GB wird, Es besteht eine hohe Wahrscheinlichkeit, dass Sie die Erinnerung nicht überleben können. Fügen Sie in diesem Fall die Option Chunksize hinzu und laden Sie sie separat.
Wenn Sie Chunksize angeben, Es wird als TextFileReader-Instanz anstelle eines Datenrahmens geladen. Wenn Sie den TextFileReader in einer Schleife drehen, können Sie den DataFrame abrufen. Im folgenden Beispiel werden 50 Zeilen herausgenommen und gedruckt.
data = pd.read_csv("test.csv", chunksize=50)
for i in data:
print(i)
Optionsname | Bedeutung | Beispiel |
---|---|---|
encoding | Zeichencode-Spezifikation | encoding='UTF-8' |
skiprows | Geben Sie die zu überspringende Zeile an | skiprows=2 |
chunksize | Lesen Sie jede angegebene Anzahl von Zeilen | chunksize=50 |
usecols | Schreibgeschützte Spalten | usecols=[1, 3] |
[Andere Optionen](https://own-search-and-study.xyz/2015/09/03/pandas%E3%81%AEread_csv%E3%81%AE%E5%85%A8%E5%BC%95 % E6% 95% B0% E3% 82% 92% E4% BD% BF% E3% 81% 84% E3% 81% 93% E3% 81% AA% E3% 81% 99 /)
Lesen und Verketten separater Dateien
#Datei 1 gelesen
Data1 = pd.read_csv(file1, dtype = np.float32)
#Datei 2 lesen
Data2 = pd.read_csv(file2, dtype = np.float32)
#Verketten Sie 2 Daten
rawData = pd.concat([Data1, Data2], ignore_index=True)
df['A']
df[1:3]
Beachten Sie, dass die Zeile bei 0 beginnt. In diesem Fall kann die erste Zeile nicht abgerufen werden. Auch: 3 bedeutet bis zu 2.
Der ursprüngliche Datenrahmen wird durch Angabe von inplace = True geändert. Im folgenden Beispiel verschwinden die Spalten Stadt und Preis aus den Daten.
df.drop(columns=['City', 'Price'], axis = 1, inplace=True)
Kann durch Spaltennummer angegeben werden
df.drop(columns=[[1, 2]], axis = 1, inplace=True)
df.drop(df.index[[1, 3, 5]])
Standardmäßig ist der Zeilenindex eine Seriennummer von 0, Beachten Sie, dass der Index nach dem Sortieren usw. keine Seriennummer ist.
df.replace({Spaltenname: {Originalwert:Wert nach dem Austausch}})
Wird verwendet, wenn die Verarbeitung abhängig vom Spaltenwert geändert wird. Da es ein GroupBy-Objekt zurückgibt, können Sie mit der for-Anweisung so wie sie ist herumspielen.
für Spaltenwert,Datenrahmen in df.groupby('Spaltenname'):
Jeder Prozess
Da der Index gestreut ist, Verwenden Sie reset_index (), um den Index in jeden Datenrahmen erneut einzufügen.
for city,sdf in df.groupby('city'):
sdf.reset_index(drop=True)
if city = 'Tokyo':
flags = 1
Gibt die Anzahl der Elemente im ersten Spaltenarray zurück. Ohne [0] wird jede Matrix gezählt.
pd.shape[0]
means = df.mean(axis = 0)
std = df.std(axis = 0)
So speichern Sie nach der Verarbeitung des Datenrahmens als CSV:
df.to_csv("Dateiname")
Optionsname | Bedeutung | Beispiel |
---|---|---|
columns | Exportieren Sie nur bestimmte Spalten | columns=['age'] |
header | Mit oder ohne Header | header=False |
index | Vorhandensein oder Nichtvorhandensein eines Index | index=False |
CSV-Datei mit Pandas exportieren / hinzufügen (to_csv)
Unterschiede zwischen Pandas und NumPy und wie man sie richtig benutzt DataFrame nach Spaltenwert gruppieren --pandas Löschen Sie durch Angabe der Zeile / Spalte von pandas.DataFrame CSV / Tsv-Dateien mit Pandas lesen (read_csv, read_table) DataFrame-Index mit reset_index-python neu zuweisen
Recommended Posts