如何在Pandas中找到两个相等的最小值?

2024-10-06 12:25:45 发布

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

我正在努力寻找黄牌数量最少和最多的球队。我的两个代码运行良好,但没有检查相同的数字。丹麦和德国有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


Tags: 数据方法代码namedfindexminteam
1条回答
网友
1楼 · 发布于 2024-10-06 12:25:45

您可以简化代码并使用^{},与列的minmax比较:

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

相关问题 更多 >