首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫平均多栏

熊猫平均多栏
EN

Stack Overflow用户
提问于 2018-02-21 10:46:58
回答 1查看 83关注 0票数 1

假设我已经创建了一个

代码语言:javascript
复制
df=pd.DataFrame({
'A':pd.Series(['aa','aa','bb','bb']),
'B':pd.Series(['xx','yy','zz','zz']), 'C':pd.Series([1,2,3,4]),
'D':pd.Series([11,12,13,14]), 'E':pd.Series([41,42,43,44])
})

其结果应该是:

代码语言:javascript
复制
A   B  C   D   E
0  aa  xx  1  11  41
1  aa  yy  2  12  42
2  bb  zz  3  13  43
3  bb  zz  4  14  44

我想把'C','D‘和'E’按'A‘和'B’分类。我知道我可以用

代码语言:javascript
复制
pd.DataFrame({'C_avg' : df.groupby(['A','B'])['C'].mean()}).reset_index()

pd.DataFrame({'D_avg' : df.groupby(['A','B'])['D'].mean()}).reset_index()

pd.DataFrame({'E_avg' : df.groupby(['A','B'])['E'].mean()}).reset_index()

来分离平均值。然而,我希望我的最终产品成为一个数据格式,就像

代码语言:javascript
复制
A   B  C_avg  D_avg  E_avg
0  aa  xx    1.0    11.0    41.0
1  aa  yy    2.0    12.0    42.0
2  bb  zz    3.5    13.5    43.5

例如,像这样的数据:

代码语言:javascript
复制
df_avg=pd.DataFrame({
'A':pd.Series(['aa','aa','bb']),
'B':pd.Series(['xx','yy','zz']),
'C_avg':pd.Series([1.0,2.0,3.5]),
'D_avg':pd.Series([11.0,12.0,13.5]),
'E':pd.Series([41.0,42.0,43.5])
})

有没有快捷或清洁的方法?非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-21 10:56:19

使用

代码语言:javascript
复制
In [237]: df.groupby(['A', 'B']).mean().add_suffix('_avg').reset_index()
Out[237]:
    A   B  C_avg  D_avg  E_avg
0  aa  xx    1.0   11.0   41.0
1  aa  yy    2.0   12.0   42.0
2  bb  zz    3.5   13.5   43.5

详细信息

代码语言:javascript
复制
In [238]: df
Out[238]:
    A   B  C   D   E
0  aa  xx  1  11  41
1  aa  yy  2  12  42
2  bb  zz  3  13  43
3  bb  zz  4  14  44
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48903957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档