用两个条件替换重复项

2024-05-13 21:26:32 发布

您现在位置:Python中文网/ 问答频道 /正文

基于以下条件,我想用NaN替换重复项:
ID&;代码是重复的。如果代码不同,请保留它。
例如:

ID  Code
1   A10
1   A10
1   A10
1   E39
1   I24
2   O32
2   K94
3   E39

我试过这个:

df.loc[df['ID'].duplicated(), 'Code'] = np.nan

但它只保留第一个代码并替换任何其他代码。如果ID&;的;与其他实例匹配的代码

期望输出:

ID  Code
1   A10
1   NaN
1   NaN
1   E39
1   I24
2   O32
2   K94
3   E39

Tags: 代码iddfnpcodenan条件loc
1条回答
网友
1楼 · 发布于 2024-05-13 21:26:32

通过指定两列来使用^{}

df.loc[df.duplicated(['ID','Code']), 'Code'] = np.nan
#alternatives
#df['Code'] = df['Code'].mask(df.duplicated(['ID','Code']))
#df['Code'] = np.where(df.duplicated(['ID','Code']), np.nan, df['Code'])
print (df)
   ID  Code
0   1   A10
1   1   NaN
2   1   NaN
3   1   E39
4   1   I24
5   2   O32
6   2   K94
7   3  E830

相关问题 更多 >