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

如何检测Pandas DataFrame列值更新/删除并标记变更行?

实现带变更标记列的Pandas DataFrame修改

首先初始化目标DataFrame:

import pandas as pd

_d = {'first_name':['Joe','Sha','Ram','Wes','David'],
      'last_name':['Doe','Jhu','Krishna','County','John'],
      'middle_name':['R.','M.','Q.','S.','I.']
    }

df_A = pd.DataFrame(_d)

接下来按需求完成修改并标记变更行:

  1. 先新增is_changed列,默认标记为未变更('No')
df_A['is_changed'] = 'No'
  1. 修改last_name为Doe的用户的middle_name,并标记该行已变更
# 定位目标行
mask = df_A['last_name'] == 'Doe'
# 修改middle_name
df_A.loc[mask, 'middle_name'] = 'RA.'
# 标记变更
df_A.loc[mask, 'is_changed'] = 'Yes'
  1. 修改first_name为David的用户的last_name,并标记变更
mask = df_A['first_name'] == 'David'
df_A.loc[mask, 'last_name'] = 'Curey'
df_A.loc[mask, 'is_changed'] = 'Yes'
  1. 修改first_name为Ram的用户的first_name为Laxman,并标记变更
mask = df_A['first_name'] == 'Ram'
df_A.loc[mask, 'first_name'] = 'Laxman'
df_A.loc[mask, 'is_changed'] = 'Yes'

执行完所有操作后,打印DataFrame即可看到结果:

print(df_A)

输出结果:

first_name last_name middle_name is_changed
0        Joe       Doe         RA.        Yes
1        Sha       Jhu          M.         No
2     Laxman    Krishna          Q.        Yes
3        Wes    County          S.         No
4       David     Curey          I.        Yes

这种方式的好处是每次修改时同步更新变更标记,确保所有被修改过的行都能被正确标记,后续有新的修改操作时,只需要重复「定位目标行→修改列→标记变更」的步骤即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:06:24