我想通过pandas的agg()函数传递numpy percentile()函数,就像我在下面用各种其他numpy统计函数一样.
现在我有一个如下所示的数据框:
AGGREGATE MY_COLUMN
A 10
A 12
B 5
B 9
A 84
B 22
Run Code Online (Sandbox Code Playgroud)
我的代码看起来像这样:
grouped = dataframe.groupby('AGGREGATE')
column = grouped['MY_COLUMN']
column.agg([np.sum, np.mean, np.std, np.median, np.var, np.min, np.max])
Run Code Online (Sandbox Code Playgroud)
上面的代码有效,但我想做类似的事情
column.agg([np.sum, np.mean, np.percentile(50), np.percentile(95)])
Run Code Online (Sandbox Code Playgroud)
即指定从agg()返回的各种百分位数
该怎么做?
这是一个示例数据帧:
df = pd.DataFrame([[1, 1, 10, 11, 12],
[1, 1, 13, 14, 15],
[1, 2, 16, 17, 18],
[1, 2, 19, 20, 21],
[1, 3, 22, 23, 24],
[1, 3, 25, 26, 27],
[1, 4, 28, 29, 30],
[1, 4, 31, 32, 33],
[1, 4, 34, 35, 36],
[1, 4, 37, 38, 39],
[1, 4, 40, 41, 42]])
df.columns = ['c1', 'c2', 'p1', 'p2', 'p3']
print(df)
Run Code Online (Sandbox Code Playgroud)
给出:
c1 c2 p1 p2 p3
0 1 1 10 11 12
1 1 …Run Code Online (Sandbox Code Playgroud)