字典列表中的熊猫数组
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)
最后一个也会注意警告;)以上是关于字典列表中的熊猫数组的主要内容,如果未能解决你的问题,请参考以下文章