python - Python Excel文件到字典
问题描述
我想从 Excel 文件创建 depandant 组合框。如果选择了combo1,combo2 将根据Combo1 而改变。输入如下。
城市 | 姓名 |
---|---|
AA | 约翰 |
AA | 安妮 |
BB | 肖恩 |
BB | 迪伦 |
我试图创建 Pandas 数据框并使用 to_dict()。但这不是我期望的结果。
预期结果 {"AA": [["John"], ["Anne"]], "BB": [["Sean"], ["Dylan"]]}。
谢谢你。
编辑:我试过的代码。如果选择combo1 "AA",combo2 将显示"John","Anne"
df = (pd.read_excel("test.xls"))
#due to I don't need the "City" && "Name".
df.set_index('City')['Name'].to_dict()
输出 :
{'AA': 'Anne', 'BB': 'Dylan'}
df.to_dict("r")
输出 :
[{'City': 'AA', 'Name': 'John'}, {'City': 'AA', 'Name': 'Anne'}, {'City': 'BB', 'Name': 'Sean'}, {'City': 'BB', 'Name': 'Dylan'}]
df.to_dict("list")
输出 :
{'City': ['AA', 'AA', 'BB', 'BB'], 'Name': ['John', 'Anne', 'Sean', 'Dylan']}
解决方案
尝试通过groupby()
,agg()
和to_dict()
方法:
out=df.groupby('City')['Name'].agg(list).to_dict()
#you can also use apply() in place of agg() method
输出out
:
{'AA': ['John', 'Anne'], 'BB': ['Sean', 'Dylan']}
推荐阅读
- php - 未定义变量:Laravel
- javascript - 无法在 node.js 中动态访问 POST 参数
- c# - 使用 RestSharp 反序列化 JSON 响应导致空对象
- excel - 用剪贴板中的图片替换电子邮件中的文本
- facebook - Facebook 聊天插件“杀死”Pagespeed 到 33
- html - 滚动显示更多的 div 向右浮动
- appium - webelement.click()之后的Android Appium性能问题
- spring-boot - spring-security-oauth2 vs spring-cloud-starter-oauth2
- css - CSS Hero 图片高度问题
- android - 如何在整个应用程序中设置 Android 中特定类型的首选项?