首页 > 解决方案 > 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']}

标签: pythonpandaspyqt

解决方案


尝试通过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']}

推荐阅读