如何在pandas中合并两个时间戳索引的DataFrame并去除完全重复行
Pandas合并两个带时间戳索引的DataFrame并去重方案
核心思路
将两个DataFrame纵向拼接后,对时间戳(索引)和数值列同时做重复校验,仅保留完全唯一的记录。
实现代码
import pandas as pd # 拼接两个DataFrame,df1为历史数据,df2为新增数据 combined = pd.concat([df1, df2]) # 重置索引将时间戳转为普通列,全局去重后恢复时间戳为索引 combined = combined.reset_index()\ .drop_duplicates(keep='first')\ .set_index(combined.index.name if combined.index.name else 'timestamp') # 按时间排序保证时序正确 combined = combined.sort_index()
注意事项
- 如果数值列为浮点数,可先对数值列做精度统一后再去重,避免浮点精度误差导致重复判定失效:
# 示例将数值列保留3位小数,可按需调整位数 combined['你的数值列名'] = combined['你的数值列名'].round(3) keep='first'表示重复记录优先保留先出现的历史数据,若要优先保留新增数据可修改为keep='last'
内容的提问来源于stack exchange,提问作者GringoJoey
相关产品推荐
相关产品推荐

