可以说我的df是:
import pandas as pd
df = pd.DataFrame({'col1':['a', 'a', 'a', 'b', 'b', 'c', 'd', 'd', 'd'],
'col2':[10,20, 30, 10, 20, 10, 10, 20, 30]})
如何使所有数字都为零,而仅保留最后一个?在这种情况下,结果应为:
col1 col2
a 0
a 0
a 30
b 0
b 20
c 10
d 0
d 0
d 30
谢谢!
答案 0 :(得分:2)
将loc
和duplicated
与自变量keep='last'
一起使用:
df.loc[df.duplicated(subset='col1',keep='last'), 'col2'] = 0
>>> df
col1 col2
0 a 0
1 a 0
2 a 30
3 b 0
4 b 20
5 c 10
6 d 0
7 d 0
8 d 30