gpt4 book ai didi

python - 如何在 pandas 中找到两个相等的最小值?

转载 作者:行者123 更新时间:2023-12-01 02:06:04 30 4
gpt4 key购买 nike

我正在尝试找到黄牌数量最少和最多的球队。我的两个代码运行良好,但没有检查相同的数字。丹麦和德国各有4张黄牌。这些代码仅获取第一个最大数字并打印它。我找到了那个nlargest方法。它也起作用了。但是,你必须写两三个。但是,如果我有最大的数据集,则 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与列的 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

关于python - 如何在 pandas 中找到两个相等的最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49058978/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com