字典列表中的熊猫数组

Posted

技术标签:

【中文标题】字典列表中的熊猫数组【英文标题】:Panda array from list of dictionaries 【发布时间】:2018-05-09 14:49:52 【问题描述】:

我有一个这样的字典列表

["Key":[val1,val2,...], "Key2":[val1,val2,...], ...]

我想将其转换为 csv 格式,其中键是列标题,而他的值形成列值

为此,我打算使用 pandas 数据框(可以轻松导出到 csv),但我不知道如何将我的值放入数据框。

我已经尝试过myPanda = pd.DataFrame.from_records(data),但很可惜,无济于事。

【问题讨论】:

是您使用 pandas 导出到 csv 的唯一原因吗? 【参考方案1】:

我假设您的密钥是唯一的,否则这将没有多大意义。

选项 1

    将您的字典合并到一个字典中 将字典传递给pd.DataFrame 使用df.to_csv另存为CSV
dct = [..., ..., ...]

r = 
for d in dct:
    r.update(d)

pd.DataFrame(r).to_csv('file.csv')

选项 2 使用cytoolz,字典合并还有另一种可能-

from cytoolz.dicttoolz import merge
df = pd.DataFrame(merge(*dct))

选项 3 创建单独的数据框并将它们连接起来 -

df = pd.concat(list(map(pd.DataFrame, dct)), axis=1)

即使您的列表不均匀,此选项也有效。

最后两个解决方案归功于 piRSquared!。

【讨论】:

@Bharath 哇...是的。这似乎过于复杂! 如果你从cytoolz.dicttoolz 导入merge 你可以这样做pd.DataFrame(merge(*dct)) @Bharath 的解决方案重温pd.DataFrame(k: v for d in dct for k, v in d.items()) 最后一个我发誓...pd.concat(list(map(pd.DataFrame, dct)), axis=1) 最后一个也会注意警告;)

以上是关于字典列表中的熊猫数组的主要内容,如果未能解决你的问题,请参考以下文章

如何展平熊猫数据框多列中的字典列表

如何将包含元组列表的字典中的字典转换为熊猫数据框

如何使用嵌套字典列表展平熊猫数据框中的列

如何根据字典替换熊猫系列中的字符串组,并将值作为列表?

字典中的字典到熊猫数据框

将列表字典映射到熊猫 df