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

如何动态合并两个Python DataFrame并填充小DataFrame的缺失行值

解决方案

方法1:用ffill()向前填充

合并后的DataFrame里,PART NUM和DATE列只有首行有值,其余都是NaN,直接用向前填充就能批量把首行的值覆盖到所有行:

# 先执行合并操作(建议把变量名改成merged_df避免和原df1混淆)
merged_df = pd.concat([df2, df1], axis=1)
# 对指定列做向前填充
merged_df[['PART NUM', 'DATE']] = merged_df[['PART NUM', 'DATE']].ffill()

方法2:直接提取首行值赋值

原df1只有1行数据,合并后首行的PART NUM和DATE就是需要重复的固定值,直接把这两个值赋值给整列更高效:

merged_df = pd.concat([df2, df1], axis=1)
# 提取首行的目标列值
part_num_val = merged_df['PART NUM'].iloc[0]
date_val = merged_df['DATE'].iloc[0]
# 赋值给整列
merged_df['PART NUM'] = part_num_val
merged_df['DATE'] = date_val

方法3:合并前提前处理(更优雅)

不用先合并再填充,合并前把原df1的行重复到和df2一致的行数,再横向合并:

# 把df1的行重复len(df2)次,重置索引后和df2合并
merged_df = pd.concat([
    df2, 
    df1.loc[df1.index.repeat(len(df2))].reset_index(drop=True)
], axis=1)

以上三种方法都无需手动重复拼接df1,能自动适配df2的任意行数。

内容的提问来源于stack exchange,提问作者L. Full

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 03:06:39