Pandas: erstellen sie einen dataframe aus einem diktat mit unterschiedlichen längen
Sie können die folgende grundlegende Syntax verwenden, um einen Pandas-DataFrame aus einem Wörterbuch zu erstellen, dessen Einträge unterschiedliche Längen haben:
import pandas as pd df = pd. DataFrame (dict([(key, pd. Series (value)) for key, value in some_dict. items ()]))
Diese Syntax konvertiert eine Liste von Wörterbucharrays in eine Liste von Pandas-Serien.
Dadurch können wir einen Pandas-DataFrame erstellen und einfach die NaN-Werte eingeben, um sicherzustellen, dass jede Spalte im resultierenden DataFrame die gleiche Länge hat.
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: Erstellen Sie einen Pandas DataFrame aus einem Diktat mit unterschiedlichen Längen
Angenommen, wir haben das folgende Wörterbuch mit Einträgen unterschiedlicher Länge:
#create dictionary whose entries have different lengths some_dict = dict(A=[2, 5, 5, 7, 8], B=[9, 3], C=[4, 4, 2]) #view dictionary print (some_dict) {'A': [2, 5, 5, 7, 8], 'B': [9, 3], 'C': [4, 4, 2]}
Wenn wir versuchen, dieses Wörterbuch mit der Funktion from_dict() in einen Pandas-DataFrame zu konvertieren, erhalten wir eine Fehlermeldung:
import pandas as pd #attempt to create pandas DataFrame from dictionary df = pd. DataFrame . from_dict (some_dict) ValueError : All arrays must be of the same length
Wir erhalten eine Fehlermeldung, die uns mitteilt, dass alle Arrays im Wörterbuch dieselbe Länge haben müssen.
Um diesen Fehler zu umgehen, können wir die folgende Syntax verwenden, um Dictionary in DataFrame zu konvertieren:
import pandas as pd #create pandas DataFrame from dictionary df = pd. DataFrame (dict([(key, pd. Series (value)) for key, value in some_dict. items ()])) #view DataFrame print (df) ABC 0 2 9.0 4.0 1 5 3.0 4.0 2 5 NaN 2.0 3 7 NaN NaN 4 8 NaN NaN
Beachten Sie, dass wir erfolgreich einen Pandas-DataFrame erstellen können und die NaN-Werte aufgefüllt werden, um sicherzustellen, dass jede Spalte die gleiche Länge hat.
Wenn Sie diese NaN-Werte durch andere Werte (z. B. Null) ersetzen möchten, können Sie die Funktion replace() wie folgt verwenden:
#replace all NaNs with zeros
df. replace (np. nan , 0, inplace= True )
#view updated DataFrame
print (df)
ABC
0 2 9.0 4.0
1 5 3.0 4.0
2 5 0.0 2.0
3 7 0.0 0.0
4 8 0.0 0.0
Beachten Sie, dass jeder NaN-Wert durch Null ersetzt wurde.
Fühlen Sie sich frei, die Funktion replace() zu verwenden, um die NaN-Werte durch einen beliebigen Wert zu ersetzen.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:
Pandas: So konvertieren Sie einen DataFrame in ein Wörterbuch
Pandas: So benennen Sie Spalten mit einem Wörterbuch um
Pandas: So füllen Sie NaN-Werte mithilfe eines Wörterbuchs