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

如何将无交集列的另一DataFrame的列添加到目标DataFrame并填充相同数据

当然可以实现啦!这在Pandas里是非常常见的操作,我给你分享几种简单易上手的方法,都能轻松得到你想要的结果:

方法1:直接列赋值

最直观的方式就是把第二个DataFrame里的列值提取出来,直接赋值给第一个DataFrame的新列。因为第二个DataFrame只有一行,提取出的是单个值,Pandas会自动帮你把这个值广播填充到目标DataFrame的所有行里。

示例代码:

import pandas as pd

# 先构建你给出的两个DataFrame
df1 = pd.DataFrame({'A': [1, 1, 1, 1], 'B': [2, 2, 2, 2]})
df2 = pd.DataFrame({'C': [3], 'D': [4]})

# 直接给df1添加新列并赋值
df1['C'] = df2['C'].iloc[0]
df1['D'] = df2['D'].iloc[0]

print(df1)

运行后就能得到你想要的结果啦。

方法2:使用assign()方法批量添加列

如果要添加的列比较多,用assign()方法会更简洁,它可以一次性给DataFrame添加多个新列:

import pandas as pd

df1 = pd.DataFrame({'A': [1, 1, 1, 1], 'B': [2, 2, 2, 2]})
df2 = pd.DataFrame({'C': [3], 'D': [4]})

# 把df2的单行数据转换成键值对,批量添加到df1中
df_result = df1.assign(**df2.iloc[0])

print(df_result)

这里**df2.iloc[0]会把单行的Series转换成C=3, D=4这样的键值对,assign()会自动把这些键作为新列名,对应的值填充到所有行。

方法3:拼接重复后的DataFrame

如果你想保留两个DataFrame的原始结构,也可以先把第二个DataFrame重复成和第一个一样的行数,再按列拼接:

import pandas as pd

df1 = pd.DataFrame({'A': [1, 1, 1, 1], 'B': [2, 2, 2, 2]})
df2 = pd.DataFrame({'C': [3], 'D': [4]})

# 把df2重复len(df1)次,重置索引后和df1拼接
df2_repeated = df2.loc[df2.index.repeat(len(df1))].reset_index(drop=True)
df_result = pd.concat([df1, df2_repeated], axis=1)

print(df_result)

这种方法的思路是让两个DataFrame行数一致,再横向拼接,同样能得到目标结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:21:15