gpt4 book ai didi

python - 'using a dict on a Series for aggregation' 的替代方案是什么

转载 作者:太空宇宙 更新时间:2023-11-03 20:49:51 27 4
gpt4 key购买 nike

我使用agg函数计算了按STNAME分组的CENSUS2010POP的平均值。在 agg 函数中,我使用带有 {} 的字典来命名平均值的新列(详细信息请参见下面的代码)代码运行良好,但 Jupyter Notebook 给了我一个警告

FutureWarning:在系列上使用字典进行聚合已弃用,并将在未来版本中删除

我想知道执行此操作的新方法是什么。

我在最新的 Jupyter Notebook 上运行它,使用 python 3,从 Anaconda3 安装

我现在使用的方法是这样的:

df = pd.read_csv('census.csv')
df = (df.where(df['SUMLEV']==50)
.dropna()
.set_index('STNAME')
.groupby(level = 0)['CENSUS2010POP']
.agg({'avg' : np.average}) )

df

但此方法已被弃用,并将在将来删除,如警告所述

结果应该是这样的(这是上面代码的结果)

                avg
STNAME
Alabama 71339.343284
Alaska 24490.724138
Arizona 426134.466667
Arkansas 38878.906667
California 642309.586207
Colorado 78581.187500
Connecticut 446762.125000
Delaware 299311.333333
...

最佳答案

根据 pandas.DataFrame.agg 的文档,它说 agg 可以将函数、列表、str 或 dict 作为输入。因此,您可以直接传递函数 np.average 并将其作为列标签。

df = pd.read_csv('census.csv')
df = (df.where(df['SUMLEV']==50)
.dropna()
.set_index('STNAME')
df['avg'] = df.groupby(level = 0)['CENSUS2010POP']
.agg(np.average) )

关于python - 'using a dict on a Series for aggregation' 的替代方案是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56344032/

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