我试图从数据帧计算特定的分位数值,如下面的代码所示.在单独的行中计算它没有问题.
当试图运行最后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] 举报,一经查实,本站将立刻删除。