python - 将 Python DataFrame 转换为字典列表
问题描述
我有一个数据框,想将其转换为字典列表。我read_csv()
用来创建这个数据框。数据框如下所示:
AccountName AccountType StockName Allocation
0 MN001 #1 ABC 0.4
1 MN001 #1 ABD 0.6
2 MN002 #2 EFG 0.5
3 MN002 #2 HIJ 0.4
4 MN002 #2 LMN 0.1
所需的输出:
[{'ABC':0.4, 'ABD':0.6}, {'EFG':0.5, 'HIJ':0.4,'LMN':0.1}]
我曾尝试研究类似的主题并使用该Dataframe.to_dict()
功能。我期待着完成这件事。非常感谢您的帮助!
解决方案
import pandas as pd
import numpy as np
d = np.array([['MN001','#1','ABC', 0.4],
['MN001','#1','ABD', 0.6],
['MN002', '#2', 'EFG', 0.5],
['MN002', '#2', 'HIJ', 0.4],
['MN002', '#2', 'LMN', 0.1]])
df = pd.DataFrame(data=d, columns = ['AccountName','AccountType','StockName', 'Allocation'])
by_account_df = df.groupby('AccountName').apply(lambda x : dict(zip(x['StockName'],x['Allocation']))).reset_index(name='dic'))
by_account_lst = by_account_df['dic'].values.tolist()
结果应该是:
print(by_account_lst)
[{'ABC': '0.4', 'ABD': '0.6'}, {'EFG': '0.5', 'HIJ': '0.4', 'LMN': '0.1'}]
推荐阅读
- c - 整个程序中 __TIME__ 的常量值
- javascript - 找不到别名。也许你忘记加入它
- amazon-redshift - 在 redshift 上创建视图和数据类型
- angular - 在 Angular 5 中从 CkEditor 上传图像
- android - 如何抑制 Kotlin 中单行的警告
- hive - 如何使用 hiveql 与前一行日期进行日期差异?
- dart - 如何将未来类中的对象对象加载到另一个对象/类中?
- javascript - 我们如何在 React JavaScript 中使用管道?
- java - 在 jasypt hibernate 加密中使用带有 like 子句的 HQL 查询
- angular - Angular 作为 Express 子应用