Python/Pandas实现DataFrame A指定行复制到DataFrame B对应行的方法
Pandas 按行名匹配填充DataFrame空值方案
实现代码
假设存储行名(如「销售收入」)的列在两个DataFrame中均为指标名称,你可以替换为自己实际的列名:
# 步骤1:将行名列设为索引,实现自动按行名对齐 df_a = df_a.set_index("指标名称") df_b = df_b.set_index("指标名称") # 步骤2:用工作表A的数值填充工作表B的对应空值,自动匹配同列名单元格 df_b.update(df_a) # 步骤3(可选):恢复原数字索引,把行名列改回普通列 df_b = df_b.reset_index()
注意事项
- 该方法无需手动匹配行号,会自动对齐行名、列名都完全一致的单元格填充,仅覆盖df_b的空值,不会修改df_b原有已填充的内容
- 如果你的行名已经直接存储在DataFrame的索引中(而非普通列),可直接跳过步骤1,执行
df_b.update(df_a)即可 - 若仅需填充指定列,可指定列范围操作,示例:
# 仅填充2023、2024两列的空值 fill_cols = ["2023年", "2024年"] df_b[fill_cols].update(df_a[fill_cols])
效果示例
工作表A(df_a)原始数据:
指标名称 2023年 2024年 销售收入 1000 1200 净利润 200 300 工作表B(df_b)原始数据:
指标名称 2023年 2024年 营业成本 500 600 销售收入 NaN NaN 净利润 NaN NaN 执行代码后df_b结果:
指标名称 2023年 2024年 营业成本 500 600 销售收入 1000 1200 净利润 200 300
内容的提问来源于stack exchange,提问作者Bernhard van den Ende
相关产品推荐
相关产品推荐

