oro*_*ome 8 python dictionary dataframe pandas
我有一个Python列表,dict每个都有相同的键,
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})
Run Code Online (Sandbox Code Playgroud)
并希望用它来创建一个带有密钥子集的相应Pandas数据帧.我目前的方法是一次dict从列表中取出每个,并使用它将其附加到数据框
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
Run Code Online (Sandbox Code Playgroud)
但这非常慢(实际列表,它包含的词组,都非常大).
是否有更好,更快(更惯用)的方法来迭代字典列表并将它们作为行添加到Pandas数据帧中?
shx*_*hx2 14
简单地传递data给DataFrame's __init__,或者DataFrame.from_records(或者可以工作).
您可能还想设置索引,例如DataFrame.from_records(data, index = 'k1').
如果您还需要执行一些计算DataFrame,在创建它之后,通常更容易也更方便.利用熊猫!