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

如何为Pandas差异DataFrame添加来源标识列(Removed/Added)?

实现方案

核心思路

先给两个DataFrame分别添加来源标记列,再合并后基于原始数据列去重——这样既能保留差异行的来源标识,又不会破坏原有的去重逻辑。

具体代码

  1. 为原始DataFrame添加标记列(用copy()避免修改原数据)
# 复制原数据,避免改动原始df1/df2
df1_marked = df1.copy()
df1_marked['change_type'] = 'Removed'

df2_marked = df2.copy()
df2_marked['change_type'] = 'Added'
  1. 合并并按原始列去重
# 合并带标记的两个DataFrame
combined_df = pd.concat([df1_marked, df2_marked])

# 提取所有原始数据列(排除新增的标记列)
original_cols = [col for col in combined_df.columns if col != 'change_type']

# 仅基于原始列判断重复,保留完全不重复的差异行
new_dataframe = combined_df.drop_duplicates(subset=original_cols, keep=False)

关键说明

指定subset=original_cols是核心:去重时只会对比原始数据的列,不会把change_type的差异当成行的差异,保证和你之前的去重逻辑完全一致。最终的new_dataframe里,来自df1的行标记为Removed,来自df2的行标记为Added,同时只保留两个表中完全不重复的行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:05:43