Gee*_*Gee 4 python dataframe pandas
我有以下排序的数据框,我想将id 列中每个id的最后一个值设置为0
id value
1 500
1 50
1 36
2 45
2 150
2 70
2 20
2 10
Run Code Online (Sandbox Code Playgroud)
我可以使用将整个id 列的最后一个值设置为 0 df['value'].iloc[-1] = 0。如何设置id : 1和id : 2的最后一个值以获得以下输出。
id value
1 500
1 50
1 0
2 45
2 150
2 70
2 20
2 0
Run Code Online (Sandbox Code Playgroud)
您可以执行drop_duplicates并保留 last 以获取每个 id 的最后一行。使用index这些行并将值设置为 0
df.loc[df['id'].drop_duplicates(keep='last').index, 'value'] = 0
print(df)
id value
0 1 500
1 1 50
2 1 0
3 2 45
4 2 150
5 2 70
6 2 20
7 2 0
Run Code Online (Sandbox Code Playgroud)