Skip to main content
 首页 » 编程设计

python之更改列中的所有第一个值,从其他列分组

2025年05月04日22Leo_wl

我有 2 列 - _a、_b。

import numpy as np  
import pandas as pd 
df = pd.DataFrame({'_a':[1,1,1,2,2,3,3],'_b':[3,4,5,3,3,3,9]}) 
df 
 
    _a  _b 
0   1   3 
1   1   4 
2   1   5 
3   2   3 
4   2   3 
5   3   3 
6   3   9 

我需要将 _b 列中的第一个值更改为 0,并按 _a 列分组 喜欢这里:

    _a  _b 
0   1   0 
1   1   4 
2   1   5 
3   2   0 
4   2   3 
5   3   0 
6   3   9 

提前谢谢你。

请您参考如下方法:

默认情况下,pd.Series.duplicated 为第一项返回 False。利用它,您可以:

df.loc[~df['_a'].duplicated(), '_b'] = 0 
 
df 
Out:  
   _a  _b 
0   1   0 
1   1   4 
2   1   5 
3   2   0 
4   2   3 
5   3   0 
6   3   9