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

如何以Pythonic方式在Pandas DataFrame中用空格拼接所有列为新列?

Pythonic方法拼接Pandas DataFrame所有列为新列

嘿,你问的这个问题太有代表性了——手动逐个列拼接不仅写起来麻烦,要是列数多的话简直是维护灾难!当然有更符合Python风格的实现方式,下面给你几种实用的方案,结合你的示例数据来演示:

首先先准备好示例数据,方便大家复现验证:

import pandas as pd

data = {
    'a': ['1', 'a', 'p'],
    'b': ['2', 'd', '0'],
    'c': ['3', '3', 'k']
}
df = pd.DataFrame(data)

方法一:apply() + str.join()(最通用)

这是最直观的Pythonic写法,沿着行方向处理每一行数据,把整行元素转成字符串后用空格拼接:

# 处理所有列,自动适配列数变化
df['combined'] = df.apply(lambda row: ' '.join(row.astype(str)), axis=1)

小提示:row.astype(str)是为了确保所有列的内容都转成字符串类型,避免遇到整数/浮点数列时拼接出错,如果你确定所有列本来就是字符串,这一步可以省略。

方法二:agg()方法(更简洁)

用agg对每一行直接应用字符串拼接操作,代码更短:

# 先统一转字符串再拼接,兼容非字符串列
df['combined'] = df.astype(str).agg(' '.join, axis=1)

运行任意一种方法后,你的DataFrame都会得到想要的结果:

a  b  c combined
0  1  2  3    1 2 3
1  a  d  3    a d 3
2  p  0  k    p 0 k

这两种方法都完美避免了手动列拼接的繁琐,不管你的DataFrame有3列还是30列,代码都不用改,完全符合Python“简洁、可读、高效”的风格~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:30:38