Python 3.x 从数据帧中的类别(列)中选择前n行并对其执行计算

Python 3.x 从数据帧中的类别(列)中选择前n行并对其执行计算,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,我是熊猫队的新手,我正在分析国际足联的数据集,我需要为每个位置选择前5名球员(基于总得分) 而且 我想检查,是否有任何球员,谁是在一个以上的小组,为上述条件。 2.对单个组执行平均值、最大值等操作 谢谢 使用此操作时,我无法检索其他列,如Name和Wage fifa_df.groupby('Position')['total'].nlagest(5).groupby('Position').head() 样本数据: 预期结果如下: 我也在努力寻找,在多个小组中的所有球员 并尝试为每个职位前5名

我是熊猫队的新手,我正在分析国际足联的数据集,我需要为每个位置选择前5名球员(基于总得分)

而且

我想检查,是否有任何球员,谁是在一个以上的小组,为上述条件。 2.对单个组执行平均值、最大值等操作

谢谢

使用此操作时,我无法检索其他列,如Name和Wage

fifa_df.groupby('Position')['total'].nlagest(5).groupby('Position').head()

样本数据: 预期结果如下:

我也在努力寻找,在多个小组中的所有球员

并尝试为每个职位前5名球员提供平均工资等操作

数据集链接-



尝试在应用程序中使用NLAGEST

res = df[['Name','Position','Overall','Wage']]
res= res.groupby(['Position'],as_index=False).apply(lambda x: x.nlargest(5, 'Overall'))
res.reset_index(inplace=True)
data.drop(['level_0','level_1'],axis=1,inplace=True)
print(data)

我希望它能解决您的问题

请添加示例数据和代码而不是图片Shi Tawab,我已经添加了数据集的链接No problem@GokulElumalai,upvote如果您觉得有用,请确保Tawab。只有一个问题,如果我想检查两组(基于位置)之间是否有任何共同的玩家,我是否必须创建单独的数据帧?你可以做
res=df.groupby(['Position'],as_index=False)。apply(lambda x:x.nlargest(5,'total'))
你的答案对我来说很容易记住,谢谢你回答政治问题_scientist@GokulElumalai很高兴我能帮忙!我试图找到最简单的解决办法
    Name                Position    Overall Wage
1   Cristiano Ronaldo   ST          94      €405K
10  R. Lewandowski      ST          90      €205K
23  S. Agüero           ST          89      €300K
16  H. Kane             ST          89      €205K
36  G. Bale             ST          88      €355K
517 S. Coleman          RWB         80      €97K
465 P. Kadeřábek        RWB         80      €39K
450 M. Ginter           RWB         80      €28K
652 D. Caligiuri        RWB         79      €33K
766 Pablo Maffeo        RWB         78      €24K
...
res = df[['Name','Position','Overall','Wage']]
res= res.groupby(['Position'],as_index=False).apply(lambda x: x.nlargest(5, 'Overall'))
res.reset_index(inplace=True)
data.drop(['level_0','level_1'],axis=1,inplace=True)
print(data)
    Name       Position Overall Wage
0   A. Griezmann    CAM 89     €145K
1   C. Eriksen      CAM 88     €205K
2   Roberto Firmino CAM 86     €195K
3   T. Müller       CAM 86     €135K
4   M. Özil         CAM 86     €190K
5   D. Godín        CB  90     €125K
6   S. Umtiti       CB  87     €205K
7   M. Benatia      CB  86     €160K
8   N. Otamendi     CB  85     €170K
9   Naldo           CB  85     €38K
....