Pandas如何通过groupby直接生成分组对应的列表字典
实现方式
不需要先走计数交叉表、再手动做列表推导的流程,直接通过groupby聚合即可一步得到目标字典:
result_dict = my_df.groupby('column_A')['column_B'].apply(list).to_dict()
- 核心逻辑:按
column_A分组后,对每组的column_B列直接用list做聚合,会自动收集组内所有column_B的取值为列表,保留数据原始顺序 - 聚合后得到的是索引为
column_A取值、值为对应列表的Series,调用.to_dict()就直接输出{分组键: 列值列表}格式的目标结果
如果你需要列表内的整数值按从小到大排列(和你之前计数交叉表展开的元素顺序对齐),可以在分组前先对column_B排序:
result_dict = my_df.sort_values('column_B').groupby('column_A')['column_B'].apply(list).to_dict()
内容的提问来源于stack exchange,提问作者Aphreven
相关产品推荐
相关产品推荐

