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

基于前后行去重DataFrame值:替换特定重复项为None

DataFrame按条件批量替换行值解决方案

初始数据定义

import pandas as pd
d = {"a":["Residency", "Citizenship", "Citizenship","Residency",
          "Citizenship","Citizenship","Citizenship","Residency"],
     "b":["UK","UK","UK","UK","UK","UK","UK","UK"]}
df = pd.DataFrame(d)

初始数据预览

a   b
0    Residency  UK
1  Citizenship  UK
2  Citizenship  UK
3    Residency  UK
4  Citizenship  UK
5  Citizenship  UK
6  Citizenship  UK
7    Residency  UK

需求说明

当a列的前一行值不为Residency时,将当前行的Citizenship和UK替换为None,需保留DataFrame中其他所有列的原有数据不变。

实现代码

# 构建筛选条件:前一行a列不是Residency,且当前行a列是Citizenship
mask = (df['a'].shift() != 'Residency') & (df['a'] == 'Citizenship')

# 对符合条件的行,将a、b列赋值为None
df.loc[mask, ['a', 'b']] = None

最终结果

a     b
0    Residency    UK
1  Citizenship    UK
2         None  None
3    Residency    UK
4  Citizenship    UK
5         None  None
6         None  None
7    Residency    UK

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 04:12:49