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

如何将Pandas DataFrame多行合并为单行并拼接各列值?

问题描述

我定义了如下Pandas DataFrame:

test_df = pd.DataFrame(
    {"col_one": [1, 2, 3, 4, 5], "col_two": ["one", "two", "three", "four", "five"]}
).astype(str)

我使用以下代码尝试将所有行合并为单行并拼接值:

for c in test_df.columns:
    test_df[c] = ",".join(test_df[c].values)
print(test_df)

运行后得到多行重复拼接值的结果,而我期望得到仅一行的DataFrame,其中每列值为对应列所有行值的拼接。请问该如何实现?

解决方案

你原代码的问题在于:把拼接后的字符串赋值给了原DataFrame的每一行,所以最终会得到多行重复的结果。以下是几种实现目标的简洁方法:

方法1:使用agg聚合生成单行DataFrame

利用Pandas的agg方法对每列执行字符串拼接,再转成单行结构:

result_df = test_df.agg(','.join).to_frame().T
print(result_df)

执行后会得到仅一行的DataFrame,每列值为对应列所有行的拼接结果。

方法2:字典推导式构建单行数据

先遍历列生成拼接结果的字典,再创建新的单行DataFrame:

concat_data = {col: ','.join(test_df[col]) for col in test_df.columns}
result_df = pd.DataFrame([concat_data])
print(result_df)

这种方式逻辑直观,手动控制每列的拼接过程。

方法3:使用apply逐列处理

对DataFrame的每列应用拼接函数,再转置得到单行结构:

result_df = test_df.apply(','.join).to_frame().T
print(result_df)

效果和方法1一致,apply会逐列完成拼接操作。

内容的提问来源于stack exchange,提问作者Manuel Perez Heredia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:25:17