Pandas按两列分组聚合后如何保留三列独立结构
解决Pandas分组合并后保留原列为独立列的问题
你遇到的问题是groupby默认会将分组键设为索引,导致col1和col2不再是普通数据列。可以通过两种简单方式解决:
方法一:分组时直接保留列
在groupby中添加as_index=False参数,让分组后的col1和col2保持为独立数据列,无需后续调整:
df = df.groupby(['col1', 'col2'], as_index=False).agg({'col3': ', '.join})
注:直接传入列名字符串即可,无需用df[col1]的写法(除非col1是动态变量)。
方法二:分组后重置索引
如果已经执行了原分组代码,可调用reset_index()将多级索引还原为普通列:
# 原分组操作 df = df.groupby(['col1', 'col2']).agg({'col3': ', '.join}) # 重置索引为列 df = df.reset_index()
两种方法都能得到你预期的结果:
| col1 | col2 | col3 |
|---|---|---|
| 1 | abc | txt1, txt2 |
| 2 | abc | txt3 |
| 1 | xyz | txt4 |
| 2 | xyz | txt5 |
内容的提问来源于stack exchange,提问作者Laura
相关产品推荐
相关产品推荐

