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

Pandas合并多列后转置为单行的实现问题求助

解决方案

你的问题核心是:pd.concat([df[0], df[1]])返回的是Series对象,而非DataFrame。对Series调用.T(转置)不会改变它的一维结构,所以输出还是单列形式。下面提供几种可行的解决方法:

方法1:将合并后的Series转为DataFrame再转置

先把合并后的Series转为单列DataFrame,再转置成单行,同时重置索引避免重复索引的干扰:

import pandas as pd
df = pd.DataFrame(
    {
        0: [1, 2, 3],
        1: [11, 12, 13]
    }
)
# 合并列 → 重置索引(丢弃原重复索引)→ 转为单列DataFrame → 转置
df_combined = pd.concat([df[0], df[1]]).reset_index(drop=True).to_frame().T
print(df_combined)

输出:

0  1  2   3   4   5
0  1  2  3  11  12  13

方法2:用stack堆叠后转置

利用stack()方法将原DataFrame的列堆叠为Series,再转成单行DataFrame:

import pandas as pd
df = pd.DataFrame(
    {
        0: [1, 2, 3],
        1: [11, 12, 13]
    }
)
# 堆叠所有元素 → 重置索引 → 转为单列DataFrame → 转置
df_combined = df.stack().reset_index(drop=True).to_frame().T
print(df_combined)

方法3:直接重塑数组形状(最简洁)

提取原DataFrame的底层数值数组,直接重塑为1行6列的结构,再创建新DataFrame:

import pandas as pd
df = pd.DataFrame(
    {
        0: [1, 2, 3],
        1: [11, 12, 13]
    }
)
# 提取值 → 重塑为(1, 所有元素数) → 创建DataFrame
df_combined = pd.DataFrame(df.values.reshape(1, -1))
print(df_combined)

这种方法跳过了Series的中间步骤,效率更高,代码也更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:55:24