You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas如何将DataFrame中取值完全相同的列合并为单列

解法代码

你可以通过转置后按列值分组的方式高效实现需求,核心逻辑仅需一行代码:

import pandas as pd

# 原始DataFrame
df = pd.DataFrame({'a': [1,1,1,1, 0,0,0],
                   'b': [1,1,1,1, 0,0,0],
                   'c': [1,1,1,1, 0,0,0],
                   'd': [0,0,0,0, 1,1,1],
                   'e': [0,0,0,0, 1,1,1],
                   'f': [0,0,0,0, 1,1,1]})

# 合并取值完全一致的列
final_df = df.T.groupby(df.values.tolist(), sort=False).agg('/'.join).T

输出结果

执行后打印final_df即可得到预期结构:

a/b/c  d/e/f
0      1      0
1      1      0
2      1      0
3      1      0
4      0      1
5      0      1
6      0      1

逻辑说明

  • 先通过df.T将原始DataFrame转置,原来的列转为行,原列名转为行索引
  • 以每一列的完整取值列表作为分组键,所有取值完全一致的列会被分到同一组
  • 对同一组的原列名用/拼接作为新列名
  • 最后转置回原始结构即得到目标结果
  • 加sort=False参数可以保证拼接列名时的顺序和原列出现顺序一致,不会被自动排序打乱

内容的提问来源于stack exchange,提问作者user14946571

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 00:15:00