首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何计算DataFrameGroupBy对象的中值?

如何计算DataFrameGroupBy对象的中值?
EN

Stack Overflow用户
提问于 2019-10-17 18:24:53
回答 1查看 55关注 0票数 1

这是我的数据格式df

代码语言:javascript
代码运行次数:0
运行
复制
            1.1  1.2  1.3  2.1 ... 5.1  6.1 6.2. 6.3.
sample_a    1    1     2    4       2    3   4   2
sample_b    2    3     3    1       1    3   1   2
sample_c    2    4     3    1       1    3   2   2

我希望通过提取第一个列名(即从1.1中取1,从2.1中取2,从6.1中取6)对df进行分组,并按中间值聚合df

这是我想要的输出:

代码语言:javascript
代码运行次数:0
运行
复制
            1    2    ...   5    6
sample_a    1    4          2    3 
sample_b    3    1          1    2 
sample_c    3    1          1    2 

例如,对于第一个元素(sample_a,1),1.1、1.2和1.3的中位数是1。

这是我目前的代码。

代码语言:javascript
代码运行次数:0
运行
复制
df.columns = df.columns.str.extract('([\d])\.\d+',expand=False)
df.groupby(df.columns, axis=1).median(axis=1)

我不确定axis应该是0还是1,但不管是哪种方式,我都得到了KeyError: 'axis'

当我尝试下面的代码时,它工作得很好。

代码语言:javascript
代码运行次数:0
运行
复制
df.columns = df.columns.str.extract('([\d])\.\d+',expand=False)
df.groupby(df.columns,axis=1).sum()

为什么中位数不起作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-17 18:29:15

groupby上使用axis=1

代码语言:javascript
代码运行次数:0
运行
复制
df.groupby(df.columns.str[0], axis=1).median()

代码语言:javascript
代码运行次数:0
运行
复制
          1  2  5  6
sample_a  1  4  2  3
sample_b  3  1  1  2
sample_c  3  1  1  2
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58438678

复制
相关文章

相似问题

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