我使用了agg函数来计算按STNAME分组的CENSUS2010POP的平均值。在agg函数中,我使用了一个带有{}的字典来为平均值命名新列(以下代码中的详细信息) 该代码运行良好,但是Jupyter Notebook给了我警告
FutureWarning:对系列使用dict进行汇总 已不推荐使用,并将在以后的版本中删除
我想知道什么是新的方式。
我正在从Anaconda3安装的最新的Jupyter Notebook上运行python 3,
我现在使用的方法是这样的:
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
...
答案 0 :(得分:0)
在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) )