首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >层次化操作熊猫

层次化操作熊猫
EN

Stack Overflow用户
提问于 2021-09-02 07:45:58
回答 1查看 29关注 0票数 1

显然,我遗漏了一些简单的东西,但我不知道是什么。我想按组传播操作。让我们说一些简单的事情,我有一个简单的多指数序列(假设有两个水平),我想取平均值并减去平均值到正确的指数水平。

极简主义示例代码:

代码语言:javascript
复制
a = pd.Series({(2,1): 3., (1,2):4.,(2,3):4.})
b = a.groupby(level=0).mean()
r = a-b # this is the wrong line, b doesn't propagate to the multiindex of a

我期望的结果是:

代码语言:javascript
复制
2  1    -0.5
1  2    0
2  3    .5
dtype: float64
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-02 07:47:08

使用具有可能定义的级别的Series.sub进行对齐:

代码语言:javascript
复制
r = a.sub(b, level=0)
print (r)
2  1   -0.5
1  2    0.0
2  3    0.5
dtype: float64

或者将GroupBy.transform用于具有与原始a Series相同的索引的Series

代码语言:javascript
复制
b = a.groupby(level=0).transform('mean')
r = a-b
print (r)
2  1   -0.5
1  2    0.0
2  3    0.5
dtype: float64
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69026124

复制
相关文章

相似问题

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