标记数据帧列中的第一次出现

2024-06-14 09:08:58 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有以下数据帧

Orignal dataframe

现在,我想数一数动物第一次有一定数量的腿(第一个有两条腿的动物是猎鹰,蜘蛛是第一个有8条腿的动物,鱼没有腿,马有4条腿),以便得到这样的东西

Desired dataframe

我想这与放弃申请(keep=“first”)(为了得到想要的申请)有关,但是从那以后我不知道如何以最佳方式遵循

这是数据帧的DDL

df = pd.DataFrame({
'animal': ['falcon','eagle', 'dog', 'spider', 'fish','horse','cow','ant','worm'],
'num_legs': [2,2,4,8,0,4,4,8,0],
'num_wings': [2,2,0,0,0,0,0,0,0]})

Tags: 数据dataframedf数量方式num猎鹰first
2条回答

看起来您可以使用duplicated

df.loc[~df.num_legs.duplicated(), 'Desired'] = 'X'

print(df.fillna(''))

  animal  num_legs  num_wings Desired
0  falcon         2          2       X
1   eagle         2          2        
2     dog         4          0       X
3  spider         8          0       X
4    fish         0          0       X
5   horse         4          0        
6     cow         4          0        
7     ant         8          0        
8    worm         0          0        

^{}^{}一起使用:

df['Desired'] = np.where(df['num_legs'].duplicated(), '', 'X')
print (df)

   animal  num_legs  num_wings Desired
0  falcon         2          2       X
1   eagle         2          2        
2     dog         4          0       X
3  spider         8          0       X
4    fish         0          0       X
5   horse         4          0        
6     cow         4          0        
7     ant         8          0        
8    worm         0          0        

相关问题 更多 >