我试图找到黄牌数量最少和最多的球队。我的两个代码运行良好,但没有检查相同的数字。丹麦和德国有4张黄牌。这些代码仅获取第一个最大数量并打印出来。我找到了最大的方法。它也起作用。但是,您必须写两三个。但是,如果我有最大的数据集,那么nlargest并不是一个好方法。我做了研究。我没有找到我想要的。如果相同,我如何编写代码打印的两个最小或最大数字?
print('Max Yellow card number:',soccer['Yellow Cards'].min(),'team name is',soccer.loc[soccer['Yellow Cards'].idxmin()].Team)
df_subset=soccer.set_index('Team')[['Yellow Cards']]
df1 = df_subset.min(axis=1)
print (df1)
print (df1.nlargest(1).reset_index(name='Top_Yellow_Cards'))
print (df1.nsmallest(2).reset_index(name='Top_Yellow_Cards'))
数据集在这里:https : //github.com/jokecamp/FootballData/blob/master/Euro%202012/Euro%202012%20stats%20TEAM.csv
您可以简化代码boolean indexing
,min
并max
与列的和和一起使用:
url = 'https://raw.githubusercontent.com/jokecamp/FootballData/master/UEFA_European_Championship/Euro%202012/Euro%202012%20stats%20TEAM.csv'
soccer = pd.read_csv(url)
#print (soccer)
cols = ['Team','Yellow Cards']
min1 = soccer.loc[soccer['Yellow Cards'] == soccer['Yellow Cards'].min(), cols]
print (min1)
Team Yellow Cards
2 Denmark 4
5 Germany 4
max1 = soccer.loc[soccer['Yellow Cards'] == soccer['Yellow Cards'].max(), cols]
print (max1)
Team Yellow Cards
7 Italy 16
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句