gpt4 book ai didi

python - 如何在pandas groupby中获得最少的值出现次数

转载 作者:行者123 更新时间:2023-12-04 00:16:52 26 4
gpt4 key购买 nike

          home_team_name  home_team_goal_count
0 Bayern München 2
1 Bayern München 2
2 Bayern München 1
3 Köln 2
4 Köln 2

我按变量 home_team_name 上的数据分组。

df.groupby("home_team_name")

home_team_goal_count 的值只能是 2 或 1。我想得到最少的出现次数每组中的值。我想要的结果是 1 代表拜仁慕尼黑,0 代表科隆。为了说明拜仁慕尼黑有 2 次 2 和 1 次 1,因此最小值为 1。科隆有 2 次 2 和 0 次 1,因此最小值为 0。

最佳答案

SeriesGroupBy.value_counts 的第一个计数值, 为所有组合 1,2 reshape 并添加 0 并最后通过 min 获得最小值:

s = (df.groupby("home_team_name")['home_team_goal_count']
.value_counts()
.unstack(fill_value=0)
.min(axis=1))

print (s)
home_team_name
Bayern München 1
Köln 0
dtype: int64

详情:

print (df.groupby("home_team_name")['home_team_goal_count']
.value_counts()
.unstack(fill_value=0))
home_team_goal_count 1 2
home_team_name
Bayern München 1 2
Köln 0 2

如果可能,输入数据中只有 1 或只有 2 值是必需的 reindex:

s = (df.groupby("home_team_name")['home_team_goal_count']
.value_counts()
.unstack(fill_value=0)
.reindex([1, 2], axis=1, fill_value=0)
.min(axis=1))

关于python - 如何在pandas groupby中获得最少的值出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63048863/

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