我有以下类型的熊猫数据框
ID pp
0 1 1
1 1 1
2 1 1
3 2 0
4 2 0
5 2 0
6 3 1
7 3 1
8 3 1
9 3 1
10 4 0
对于唯一ID
值,这里的pp
值是相同的,但我想将pp
列值“1”替换为“0”,其中它不是唯一 ID 的最后一个。例如,对于ID= 1
它pp
是1
无处不在,但我要取代这个1
与0
除ID = 1的最后一个值。对于 ID=1 的最后一个值,我想离开 pp=1 这是我想要的:
ID pp
0 1 0
1 1 0
2 1 1
3 2 0
4 2 0
5 2 0
6 3 0
7 3 0
8 3 0
9 3 1
10 4 0
您需要一个 df.duplicated keep=last 的条件,并检查是否 pp=1 ,然后将 0 分配给条件匹配 else df['pp'] 的元素使用 np.where
c = (df.duplicated(['ID','pp'],keep='last')) & df['pp'].eq(1)
df['pp'] = np.where(c,0,df['pp'])
print(df)
ID pp
0 1 0
1 1 0
2 1 1
3 2 0
4 2 0
5 2 0
6 3 0
7 3 0
8 3 0
9 3 1
10 4 0
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句