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

如何使用Pandas将23列数据合并为单列?已尝试相关写法

简洁合并Pandas多列成新列的方法

嘿,我懂你手动写23列拼接代码的痛苦——不仅敲得手酸,还容易漏列或者打错列名对吧?其实有更简洁、易维护的方法来搞定这个需求,不用把每一列都挨个写出来:

核心思路

先明确你要合并的23列范围(比如列名是A到W,或者前23列),把它们放进一个列名列表,然后批量处理拼接。

具体实现方法

方法1:用sum()批量拼接(最简洁)

字符串类型的列调用sum(axis=1)时,会自动按行拼接所有列的内容,代码非常短:

# 先定义要合并的23列,比如前23列或者指定列名列表
cols = df.columns[:23]  # 如果前23列是目标列
# 或者指定具体列名:cols = ['A', 'B', 'C', ..., 'W']

# 生成新列X
df = df.assign(X=df[cols].astype(str).sum(axis=1))

方法2:用apply()+join(适合需要自定义分隔符的场景)

如果之后需要在拼接的内容之间加分隔符(比如空格、逗号),用join更灵活:

# 无分隔符拼接
df['X'] = df[cols].astype(str).apply(''.join, axis=1)

# 加分隔符(比如用逗号分隔)
df['X'] = df[cols].astype(str).apply(','.join, axis=1)

处理缺失值的版本

如果你的列里有NaN,直接转字符串会变成'NaN',可以先把缺失值替换为空字符串:

df['X'] = df[cols].fillna('').astype(str).sum(axis=1)

为什么比你之前的写法好?

  • 不用重复写23次df.列名.astype(str),代码更简洁
  • 列数变化时,只需要调整cols列表就行,维护成本低
  • 减少手动输入的错误概率

内容的提问来源于stack exchange,提问作者M. Palamas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:02:33