gpt4 book ai didi

python - Pandas.groupby 中的 df.min、df.max 和 df.mean 有没有办法一次输出在某一列?

转载 作者:太空宇宙 更新时间:2023-11-04 01:46:57 27 4
gpt4 key购买 nike

所以我需要按“fh_status”列对行进行分组,然后对每个组执行“gini”的最小值、平均值和最大值(将有三个)。我想出了这段代码:

m = (df2.groupby(['fh_status']).max().iloc[:, 2]) #iloc2 corresponds to gini column
n = (df2.groupby(['fh_status']).min().iloc[:, 2])
e = (df2.groupby(['fh_status']).mean().iloc[:, 2])
nl = '\n'
print(f' mean: {e} {nl} maximum: {m} {nl} minimum:{n}')

输出:

mean: fh_status
free 38.170175
not free 39.750000
partly free 43.931250
Name: gini, dtype: float64
maximum: fh_status
free 10.0
not free 5.0
partly free 9.0
Name: polity09, dtype: float64
minimum:fh_status
free 6.0
not free -10.0
partly free -6.0
Name: polity09, dtype: float64

在一个字符串中使用这三种方法是行不通的(据我所知,它只打印后一个命令),所以出现了三个变量,它们有点笨拙。输出似乎是正确的,但我很确定有一种方法可以优化它并减少代码量。或者不是吗?

最佳答案

是的,您可以使用 .agg(..) 并传递操作列表:

df2.groupby('fh_status')['gini']<b>.agg(['min', 'max', 'mean'])</b>

这将生成一个数据框,其中列为聚合(minmaxmean),行为组(值你在上面制作了一个 .groupby(..))。

关于python - Pandas.groupby 中的 df.min、df.max 和 df.mean 有没有办法一次输出在某一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58894526/

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