如何合并DataFrame中相似行并拼接差异值?
pandas合并仅单列不同的行并拼接差异值
可以用pandas的groupby结合聚合函数快速实现需求:
- 先构造示例DataFrame:
import pandas as pd df = pd.DataFrame({ 'V1': ['A', 'A'], 'V2': ['B', 'B'], 'V3': ['C', 'C'], 'V4': ['D', 'D'], 'V5': ['E', 'F'] })
- 按除V5外的所有列分组,对V5列执行字符串拼接:
result = df.groupby(['V1', 'V2', 'V3', 'V4'])['V5'].agg(','.join).reset_index()
执行后result就是目标结果:
V1 V2 V3 V4 V5 0 A B C D E,F
如果需要更通用的写法(无需手动列分组字段),可以自动获取除V5外的所有列作为分组依据:
group_cols = df.columns.difference(['V5']) result = df.groupby(group_cols.tolist())['V5'].agg(','.join).reset_index()
内容的提问来源于stack exchange,提问作者Ash_Hall
相关产品推荐
相关产品推荐

