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

如何将小dataframe从指定行开始覆盖合并到大dataframe中?

用小DataFrame从指定行开始覆盖大DataFrame的对应列

可以通过pandas的索引定位直接实现需求,核心思路是定位大DataFrame中需要覆盖的行范围,然后用小DataFrame的对应列值替换。

示例代码

import pandas as pd

# 创建大DataFrame
large_df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [11, 12, 13, 14, 15]})
# 创建小DataFrame
small_df = pd.DataFrame({'B': [1000, 2000]})

# 指定起始行(0-based索引,对应示例中的第2行)
start_row = 2

# 计算覆盖的结束行索引
end_row = start_row + len(small_df)

# 执行覆盖操作
large_df.loc[start_row:end_row-1, small_df.columns] = small_df.values

# 输出结果
print(large_df)

输出结果

A     B
0  1    11
1  2    12
2  3  1000
3  4  2000
4  5    15

关键说明

  • 列名匹配:确保小DataFrame的列名在大DataFrame中存在,否则会自动新增列。若不需要新增列,可先校验列名:assert all(col in large_df.columns for col in small_df.columns)
  • 行范围校验:如果小DataFrame的行数超过大DataFrame从起始行开始的剩余行数,会出现索引越界问题。可以添加截断逻辑:
    if end_row > len(large_df):
        small_df = small_df.iloc[:len(large_df)-start_row]
        end_row = len(large_df)
    
  • 值类型匹配:确保小DataFrame对应列的数据类型与大DataFrame一致,避免类型转换错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:12:09