gpt4 book ai didi

python - 获取按 A 列分组的 B 列的组大小和最小值

转载 作者:太空宇宙 更新时间:2023-11-03 15:37:47 26 4
gpt4 key购买 nike

给定一个 DataFrame df,我可以通过 A 列获取组的大小

df.groupby(['columnA']).size()

以及每组内 B 列的最小值

df.groupby(['columnA']).agg({'columnB':min})

或者(我猜是语法糖)

df.groupby(['columnA'])['columnB'].min()

但是如何直接获取具有这样2列的DataFrame呢?

在 SQL 中,如果您熟悉它,这将很简单

SELECT count(columnA), min(columnB) FROM table GROUP BY columnA

预先感谢您提供任何线索。

最佳答案

将它们都放在 agg 中应该可以工作,因为 agg 允许函数列表。

>>> df
columnA columnB columnC
0 cat1 3 400
1 cat1 2 20
2 cat1 5 3029
3 cat2 1 492
4 cat2 4 30
5 cat3 2 203
6 cat3 6 402
7 cat3 4 391

>>> df.groupby(['columnA']).columnB.agg(['size', 'min'])
size min
columnA
cat1 3 2
cat2 2 1
cat3 3 2

>>> df.groupby(['columnA']).agg(['size', 'min'])
columnB columnC
size min size min
columnA
cat1 3 2 3 20
cat2 2 1 2 30
cat3 3 2 3 203

agg 还接受列 -> 函数的字典,因此如果您想要将函数单独映射到每个列,您可以使用某些东西来实现(这里不需要)就像

df.groupby(['columnA']).agg({'columnA':'size','columnB':'min‌​'})

关于python - 获取按 A 列分组的 B 列的组大小和最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42396947/

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