Python如何将pandas DataFrame转换为指定结构的分组字典
Pandas 分组转目标字典结构解决方案
核心实现逻辑是分组后指定提取需要聚合的列,将每个分组结果转为列表后再输出为字典即可,核心代码如下:
imap = df.groupby('population')['individual'].apply(list).to_dict()
完整可运行测试示例:
import pandas as pd # 构造示例DataFrame df = pd.DataFrame( [['ind1', 'north'],['ind2','south'], ['ind3', 'north'],['ind4', 'south'], ['ind5','east']], columns=['individual', 'population'] ) # 转换为目标格式字典 imap = df.groupby('population')['individual'].apply(list).to_dict() # 打印验证结果 print(imap)
运行后输出完全匹配你需要的结构:
{ "north": ["ind1", "ind3"], "south": ["ind2", "ind4"], "east": ["ind5"] }
之前返回每个individual单独放在括号里,是因为你没有在groupby后明确指定提取individual列,也没有将分组后的序列对象转为列表,导致返回了带索引的元组结构,按上面的写法调整即可解决。
内容的提问来源于stack exchange,提问作者Alex Krohn
相关产品推荐
相关产品推荐

