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

如何将同尺寸的多列Pandas DataFrame追加至现有DataFrame右侧?

Pandas复制DataFrame并追加到右侧列的实现方法

问题场景

你需要复制现有DataFrame并将副本添加到原DataFrame的右侧列,但使用insert方法处理多列DataFrame时触发ValueError: cannot insert 6, already exists错误,原因是insert仅支持单次插入一列。

原始DataFrame:

import pandas as pd
df = pd.DataFrame({'0': 6*['p'], '1': 6*['p']})
# 输出:
#    0  1
# 0  p  p
# 1  p  p
# 2  p  p
# 3  p  p
# 4  p  p
# 5  p  p

预期结果:

0  1  2  3
0  p  p  p  p
1  p  p  p  p
2  p  p  p  p
3  p  p  p  p
4  p  p  p  p
5  p  p  p  p

解决方案(无需NumPy)

方法1:使用pd.concat(推荐)

通过按列拼接原DataFrame和其副本实现,可自定义新列名避免重复:

import pandas as pd

# 原DataFrame
df = pd.DataFrame({'0': 6*['p'], '1': 6*['p']})
# 复制副本
df_copy = df.copy()
# 重命名副本列名,使其为原列名+原列数
df_copy.columns = [str(int(col) + len(df.columns)) for col in df_copy.columns]
# 按列拼接
result = pd.concat([df, df_copy], axis=1)
print(result)

如果不需要严格递增的数字列名,可跳过重命名步骤,Pandas会自动给重复列名添加后缀(如0→0.1)。

方法2:批量赋值新增列

遍历副本的列,逐个添加到原DataFrame右侧,手动指定新列名:

import pandas as pd

df = pd.DataFrame({'0': 6*['p'], '1': 6*['p']})
df_copy = df.copy()
current_col_count = len(df.columns)

for idx, col in enumerate(df_copy.columns):
    # 按原列数+索引生成新列名
    df[str(current_col_count + idx)] = df_copy[col]

print(df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:26:05