如何在Pandas中合并重复行并聚合列值
解决Pandas按ID合并列值的问题
你可以通过groupby按id分组,再用agg方法将每组的name值合并为逗号分隔的字符串,具体代码如下:
import pandas as pd df = pd.DataFrame({'id':['A','A','A','B','B','B','C'],'name':[1,2,3,4,5,6,7]}) # 分组并合并name列 result_df = df.groupby('id')['name'].agg(lambda x: ','.join(map(str, x))).reset_index() # 打印结果 print(result_df.to_string(index=False))
运行这段代码后,输出结果为:
id name A 1,2,3 B 4,5,6 C 7
代码说明
groupby('id'):按照id列对DataFrame进行分组,把相同id的行归为一组agg(lambda x: ','.join(map(str, x))):对每组的name列执行聚合操作,先把每个数值转为字符串,再用逗号连接起来reset_index():把分组后的索引转为普通列,保证结果结构和需求一致
内容的提问来源于stack exchange,提问作者Aadhi Verma
相关产品推荐
相关产品推荐

