如何对DataFrame中A、B列重复行的C列执行Unstack合并操作?
解决思路与实现代码
直接使用groupby()结合聚合函数即可实现需求,比pivot()/unstack()更贴合这类分组合并场景:
实现代码
import pandas as pd # 构造原始DataFrame df = pd.DataFrame() df["A"] = [2,2,4,4,4,8,9] df["B"] = [2,2,4,4,4,7,9] df["C"] = list("axcdxef") # 按A、B分组,合并C列为逗号分隔的字符串 df2 = df.groupby(['A', 'B'])['C'].agg(','.join).reset_index() # 打印结果 print(df2.to_string(index=False))
代码说明
groupby(['A', 'B']):将A、B列值完全相同的行划分为同一组agg(','.join):对每组的C列元素执行字符串拼接,用逗号作为分隔符reset_index():将分组时作为索引的A、B列重新转为普通列,得到目标结构的DataFrame
执行后输出结果与需求一致:
A B C 2 2 a,x 4 4 c,d,x 8 7 e 9 9 f
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

