gpt4 book ai didi

python - 用两个条件替换重复项

转载 作者:行者123 更新时间:2023-12-01 07:57:23 25 4
gpt4 key购买 nike

我想根据以下条件用 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

最佳答案

使用DataFrame.duplicated通过指定两列:

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

关于python - 用两个条件替换重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55899584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com