将字典列表转换为Pandas数据帧

8
我有一个Python的字典列表,每个字典都有相同的键。
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}) 

我希望使用它来创建相应的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

但是这种方法非常慢(实际列表和包含的字典都相当大)。
是否有更好、更快(更具惯用性)的方法来迭代一个字典列表并将它们添加为Pandas数据框的行?
1个回答

15

只需要将data传递到DataFrame__init__或者DataFrame.from_records中即可。

你可能还想设置索引,例如DataFrame.from_records(data, index = 'k1')

如果您需要进行一些计算,通常最容易和方便的方法是在创建DataFrame后对其进行操作。利用Pandas!


1
哇,from_records 真是 - orome

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接