python - 将列表合并到数据框中
问题描述
请耐心等待,因为我是 python 新手。我正在遍历数据并获取需要组合成一个熊猫数据框的多个列表。
然后我需要添加标题,以便我可以执行计算。
问题是每个项目都被视为一个单独的实体。请帮忙
for r in rows:
person_info = list()
person_info.append(r['metadata']['name'])
person_info.append(r['metadata']['CountryId'])
person_info.append(r['metadata']['StateId'])
person_info.append(r['metadata']['Income'])
print(person_info)
这是输出:
['mike' , 1, 4, 20000]
['mary', 2, 5, 30000]
['jane', 3, 6, 40000]
这是带有标题“name”、“id_a”、“id_b”和“income”的数据帧的所需输出:
name id_a id_b income
mike 1 4 20000
mary 2 5 30000
jane 3 6 40000
解决方案
Pandas 直接接受字典列表。不要为此而抗争,您可以简单地i['metadata']
为列表中的每个项目提取。
此后您唯一的任务是重命名和排序列。
r = [{'metadata': {'name': 'mike', 'CountryId': 1, 'StateId': 4, 'Income': 20000}},
{'metadata': {'name': 'mary', 'CountryId': 2, 'StateId': 5, 'Income': 30000}},
{'metadata': {'name': 'jane', 'CountryId': 3, 'StateId': 6, 'Income': 40000}}]
df = pd.DataFrame([i['metadata'] for i in r])\
.rename(columns={'CountryId': 'id_a', 'StateId': 'id_b', 'Income': 'income'})\
.reindex(['name', 'id_a', 'id_b', 'income'], axis=1)
print(df)
name id_a id_b income
0 mike 1 4 20000
1 mary 2 5 30000
2 jane 3 6 40000
推荐阅读
- reactjs - 使用异步等待,但无法将返回的数据保存在变量中
- laravel - laravel 使模型在所有控制器的全局变量中查找
- nuxt.js - 如何在页面源代码中更改或隐藏 __nuxt 和 __NUXT__ 关键字
- excel - 将单元格作为 VBA 中的范围对象传递,然后分配值
- sql - 如何在 SQL 中沿期初余额计算余额
- java - 隐藏url中的参数
- postgresql - 尝试连接到 postgresql 时出现问题
- javascript - 轻量级“Auto Pagerize”脚本的进一步定制
- macos - 使用 awk 进行 JSON 解析
- c# - 实现单例设计模式并在整个类中使用它