我想获得多年来每个国家的平均GDP,列2006、2007 ... 2015包含GDP数量...我的代码返回一个错误,该错误意味着mean(axis = 1)至少需要1个变量,并且已为其分配1 ...这很奇怪。.我也发现我们使用均值而不是avg很奇怪,但是无法找到groupby的avg函数
这是我的代码
Top15 = ANSWER
Top15 = Top15[['Country', '2006', '2007', '2008', '2009', '2010',
'2011', '2012', '2013', '2014', '2015']]
return Top15.groupby('Country').agg({"avg": np.mean(axis=1)})
答案 0 :(得分:2)
GroupBy
,因为您正在执行计算而不是聚合。您可以只使用pd.DataFrame.mean
。这是一个最小的示例:
df = pd.DataFrame({'Country': ['UK', 'US'],
'2006': [1, 2],
'2007': [3, 4],
'2008': [5, 6]})
df['mean'] = df[['2006', '2007', '2008']].mean(1)
print(df)
2006 2007 2008 Country mean
0 1 3 5 UK 3.0
1 2 4 6 US 4.0
答案 1 :(得分:0)
使用mean()
Top15 = ANSWER
Top15 = Top15[['Country', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015']]
return Top15.groupby('Country').mean()
答案 2 :(得分:0)
您的代码有多个问题:
.agg
和字典将输入列映射到聚合类型,例如.agg({'2016': 'mean'})
np.mean(axis=1)
尝试评估某些内容,但您未提供输入。 .agg({'2016': lambda x: np.mean(x)})
可以工作Top15.groupby('Country').mean()
(将其读为“按国家/地区分组,并为每个分组计算平均值(avg)”)