python - 如何将嵌套字典列表转换为 pandas 数据框?
问题描述
要转换为 df 的列表:
final_list = [{'ID1':{'word':'4', 'talk': '4}}, {'ID2': {'cat':'3', 'dog': '3'}}, {'ID3': {'potatoes':'8', 'height': '6'}}]
预期输出
Word Number Category
0 word 4 ID1
1 talk 4 ID1
2 cat 3 ID2
3 dog 3 ID2
4 potatoes 8 ID3
5 height 6 ID3
我已经创建了一个数据框,可以在其中获取所需的 Word 和 Number 列。从这个数据框中,我试图将 final_list 的“类别”键添加为第三列。这显然不起作用,因为我在循环时只得到最后一个关键元素。这只是为了展示我的思路。
我的编码尝试
df = pd.DataFrame([(a, b) for item in another_list for a, b in item.items()],
columns=['Word','Number'])
## add the last desired column (failed attempt)
for item in final_list:
for k,v in item.items():
df_events["Category"] = k
解决方案
有必要为元组列表展平内部字典添加 next for 语句:
df = pd.DataFrame([(k,v, a) for item in final_list
for a, b in item.items()
for k, v in b.items()],
columns=['Word','Number','Category'])
print (df)
Word Number Category
0 word 4 ID1
1 talk 4 ID1
2 cat 3 ID2
3 dog 3 ID2
4 potatoes 8 ID3
5 height 6 ID3
推荐阅读
- bash - 没有左值的回显中的重定向运算符?
- html - 网格单元内弹性项目之间的图像导致水平溢出
- reactjs - 在 React 中使用 Knex 查询现有的 Sqlite3 数据库
- swiftui - 如何在swiftui中使用按钮而不是navigationview从视图导航到另一个视图
- c# - 不能多次使用“等待”
- linux - 如果我在 *nix 机器上的终端(模拟器)中输入“rm *.txt”会发生什么?
- javascript - React Autocomplete 选择值但发布空数组
- node.js - 如何使用 NodeJS 从串行设备流式传输不完整的数据 csv 数据?
- regex - 带有内部修饰符的Javascript ES6 RegEx在字符串变量中查找字符串变量的完全匹配
- css - 如何在 css 选择器中仅排除特定节点的递归子节点?