Python 3.x 从数据帧中的类别(列)中选择前n行并对其执行计算
我是熊猫队的新手,我正在分析国际足联的数据集,我需要为每个位置选择前5名球员(基于总得分) 而且 我想检查,是否有任何球员,谁是在一个以上的小组,为上述条件。 2.对单个组执行平均值、最大值等操作 谢谢 使用此操作时,我无法检索其他列,如Name和WagePython 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名
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
....