Ich habe eine Liste von Python dict
s jeweils mit den gleichen Tasten,Konvertieren eine Liste von dicts zu einem Pandas Datenrahmen
dict_keys= ['k1','k2','k3','k4','k5','k6'] # More like 30 keys in practice
data = []
for i in range(20): # More like 3000 in practice
data.append({k: np.random.randint(100) for k in dict_keys})
und möchte es verwenden, um einen entsprechenden Pandas Datenrahmen mit einer Teilmenge der erstellen Schlüssel. Mein aktueller Ansatz ist jeden dict
aus der Liste ein zu einer Zeit zu nehmen und hängen Sie ihn an den Datenrahmen mit
df = pd.DataFrame(columns=['k1','k2','k5','k6'])
for d in data:
df = df.append({k: d[k] for k in list(df.columns)}, ignore_index=True)
# In practice, there are some calculations on some of the values here
aber das ist sehr langsam (die aktuelle Liste und die dicts es enthält, ist ziemlich beide groß).
Gibt es eine bessere, schnellere (und idiomatischere) Methode zum Durchlaufen einer Liste von Wörterbüchern und Hinzufügen von Zeilen zu einem Pandas-Datenrahmen?
Wow, 'from_records' ist * schnell *! – orome