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

如何提取DataFrame指定行并填充至另一DataFrame所有行?

问题分析与解决方法

错误原因

你用的df2.apply(lambda _: df2.iloc[1], axis=1)是遍历df2的每一行,生成一个和df2行数一致的DataFrame。如果df1和df2行数不相等,pd.concat会按索引对齐拼接,行数少的DataFrame对应的多余行就会填充NaN。哪怕你示例里两者都是9行,这种写法也属于绕远路的低效操作,完全没必要。

正确解法

方法1:直接重复目标行后拼接

提取df2的目标行,重复df1的行数后和df1拼接,逻辑直观:

# 提取df2索引为1的行,重复df1的行数并转为DataFrame
target_row_df = pd.DataFrame([df2.iloc[1]] * len(df1), columns=df2.columns)
# 横向拼接得到df3
df3 = pd.concat([df1, target_row_df], axis=1)

方法2:用assign直接添加列(更简洁高效)

利用assign方法直接给df1添加新列,自动将目标行的值填充到所有行:

df3 = df1.assign(**df2.iloc[1])

这个写法不需要额外生成重复行的DataFrame,代码更简洁,执行效率也更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 02:50:22