gpt4 book ai didi

python-3.x - 具有多个函数的 Pandas groupby agg 会返回错误

转载 作者:行者123 更新时间:2023-12-02 04:01:14 30 4
gpt4 key购买 nike

问题尝试对简单的dataframe(可下载的csv)进行分组,然后聚合以返回列的聚合值(大小、总和、平均值、标准偏差)。看似简单的问题却给出了意想不到的挑战性错误。

Top15.groupby('Continent')['Pop Est'].agg(np.mean, np.std...etc)
# returns
ValueError: No axis named <function std at 0x7f16841512f0> for object type <class 'pandas.core.series.Series'>

我想要得到的是一个索引设置为大陆和列的 df ['size', 'sum', 'mean', 'std']

示例代码

import pandas as pd
import numpy as np

# Create df
df = pd.DataFrame({'Country':['Australia','China','America','Germany'],'Pop Est':['123','234','345','456'],'Continent':['Asia','Asia','North America','Europe']})

# group and agg
df = df.groupby('Continent')['Pop Est'].agg('size','sum','np.mean','np.std')

最佳答案

您只能聚合数值的大小和总和,因此在创建数据框时不要输入数字作为字符串:

df = pd.DataFrame({'Country':['Australia','China','America','Germany'],'PopEst':[123,234,345,456],'Continent':['Asia','Asia','North America','Europe']})

我认为这会得到你想要的东西?

grouped = df.groupby('Continent')
grouped['PopEst'].agg(['size','sum','mean','std'])


size sum mean std
Continent
Asia 2 357 178.5 78.488853
Europe 1 456 456.0 NaN
North America 1 345 345.0 NaN

关于python-3.x - 具有多个函数的 Pandas groupby agg 会返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41905652/

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