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

向Pandas DataFrame添加字典数据:覆盖值且保留索引

解决Pandas合并时覆盖重复索引、新增行和列的问题

直接通过concat合并后按索引分组保留最新值,就能同时实现覆盖重复索引、新增行和列的需求,具体步骤如下:

  1. 先合并原DataFrame与新数据DataFrame:
combined = pd.concat([df, new_data_df])
  1. 按行索引分组,取每组最后一行数据(新数据在合并序列的后方,会自动覆盖原有索引的旧值):
final_df = combined.groupby(combined.index).last()

效果验证

执行上述代码后,输出结果会满足所有需求:

  • dog、fish的重复索引旧值被新数据覆盖
  • 新行new_row被添加
  • 新列something_new被保留,缺失值自动填充为NaN

打印final_df的结果:

wings  specimen   legs something_new
falcon      2      10.0    2.0           NaN
dog        45      89.0    4.0           NaN
spider      0       1.0    8.0           NaN
fish    55555       8.0    0.0      new value
new_row    90       NaN    NaN           NaN

如果需要将缺失值统一填充(比如填0),可追加一步:

final_df = final_df.fillna(0)

另一种简洁写法

也可以用combine_first反向操作实现同样效果,代码更简洁:

final_df = new_data_df.combine_first(df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:57:26