gpt4 book ai didi

python - groupby 语句中是否可以包含不直接参与计算的列?

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

我正在处理来自 Fivethirtyeight 的最近_毕业生实践数据,并且我正在尝试查看哪个专业(“专业”)在每个专业类别(“Major_category”)中拥有最多的学生数量(“总计”)。

这是一个示例数据框:

Major              Major Category    Total
Petroleum Eng Engineering 1001
Nuclear Eng Engineering 4350
Marketing Business 10035
Accounting Business 3051

我想要如下的输出:

Major              Major Category    Total
Nuclear Eng Engineering 4350
Marketing Business 10035

...仅返回每个专业类别中总计最大的专业。

我使用了一个 groupby 语句,它返回每个专业类别中最大数量的学生,如下所示:

recent_grads.groupby('Major_category')['Total'].agg('max')

正如预期的那样,这将返回每个群体中最大的学生人数。我不知道在上面的代码中插入“Major”变量的位置,这样我的输出不仅告诉我每个专业类别中最大的学生人数是多少,而且还告诉我它属于哪个专业。无论我尝试将“Major”放在哪里,我的代码都会引发错误,但感觉好像我遗漏了一些明显的东西。

最佳答案

尝试sort_values + drop_duplicates

recent_grads.sort_values(['Total']).drop_duplicates('Major_category',keep='last')

转换

s=recent_grads.groupby(['Major_category'])['Total'].transform('max')
recent_grads[recent_grads.Total==s]

idxmax

s=recent_grads.groupby(['Major_category'])['Total'].idxmax()
recent_grads.iloc[s]

关于python - groupby 语句中是否可以包含不直接参与计算的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55710813/

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