gpt4 book ai didi

python - Pandas中groupby方法的 'level'参数是如何工作的?

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

(df.set_index('STNAME').groupby(level=0)['CENSUS2010POP']
.agg({'avg': np.average, 'sum': np.sum}))

在上面的代码中,为什么需要在groupby中指定level参数,因为根据我的理解,只有当DataFrame中有multiIndex时才需要level参数。

最佳答案

不只是MultiIndex,它也应该在Index中使用,因为只有一层。

也适用于函数agg对于聚合指定的列,需要通过元组列表来指定具有聚合函数的新列的名称:

df1 = (df.groupby('STNAME')['CENSUS2010POP']
.agg({'avg': np.average, 'sum': np.sum}))

FutureWarning: using a dict on a Series for aggregation is deprecated and will be removed in a future version .agg({'avg': np.average, 'sum': np.sum}))

<小时/>

但是你的代码应该更简单:

df = pd.DataFrame({'STNAME':list('aab'),
'CENSUS2010POP':[10,20,50]})

df1 = (df.groupby('STNAME')['CENSUS2010POP']
.agg([('avg', np.average), ('sum', np.sum)]))
print (df1)
avg sum
STNAME
a 15 30
b 50 50

此外,如果确实需要从 STNAME 列创建索引,或者已经在 last versions 的 DataFrame 中创建索引工作的 pandas (0.20+) 数量:

(df.set_index('STNAME').groupby('STNAME')['CENSUS2010POP']
.agg([('avg', np.average), ('sum', np.sum)]))

关于python - Pandas中groupby方法的 'level'参数是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53689872/

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