Pandas groupby quantile values
我试图从数据框中计算特定的分位数,如下代码所示。 分开计算时没有问题。
尝试运行最后两行时,出现错误" AttributeError:'SeriesGroupBy'对象没有属性'quantile(0.25)'"。 我怎样才能解决这个问题?
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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 |