微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – Pandas groupby分位数值

我试图从数据帧计算特定的分位数值,如下面的代码所示.在单独的行中计算它没有问题.

当试图运行最后2行时,我收到错误“AttributeError:’SeriesGroupBy’对象没有属性’分位数(0.25)’”.我怎样才能解决这个问题?

import pandas as pd
raw_data = {'x': [0, 1, 0, 1, 0, 1, 0, 1],
    'y': [7, 6, 5, 4, 3, 2, 1, 0],
    'number': [25000, 35000, 45000, 50000, 60000, 70000, 65000, 36000]}
df = pd.DataFrame(raw_data)
f = {'number': ['median', 'std', 'quantile']}
df1 = df.groupby('x').agg(f)
df.groupby('x').quantile(0.25)
df.groupby('x').quantile(0.75)

#code below with problem:
f = {'number': ['median', 'std', 'quantile(0.25)', 'quantile(0.75)']}
df1 = df.groupby('x').agg(f)

解决方法:

我更喜欢def功能

def q1(x):
    return x.quantile(0.25)

def q2(x):
    return x.quantile(0.75)

f = {'number': ['median', 'std', q1,q2]}
df1 = df.groupby('x').agg(f)
df1
Out[1643]: 
  number                            
  median           std     q1     q2
x                                   
0  52500  17969.882211  40000  61250
1  43000  16337.584481  35750  55000

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐