我有以下代码为我的数据帧计算一些聚合:
def percentile(n):
def percentile_(x):
return np.percentile(x, n)
percentile_.__name__ = 'percentile_%s' % n
return percentile_
df_type = df[['myType', 'required_time']].groupby(['myType']).agg(['count', 'min', 'max', 'median', 'mean', 'std', percentile(25), percentile(75)])
代码工作正常。但是,现在我只想使用[25%和75%]内的数据来计算均值和标准差,在熊猫中实现这一目标的最优雅的方法是什么?谢谢!
答案 0 :(得分:1)
您可以尝试使用分位数进行描述,这是否适合您
df[['myType', 'required_time']].groupby(['myType']).quantile([0.25,0.5]).describe()
出局:
RandomForestClassifier AdaBoostClassifier GaussianNB
count 2.000000 2.000000 2.000000
mean 0.596761 0.627393 0.580476
std 0.496570 0.463766 0.491389
min 0.245632 0.299462 0.233012
25% 0.421196 0.463427 0.406744
50% 0.596761 0.627393 0.580476
75% 0.772325 0.791359 0.754208
max 0.947889 0.955325 0.927941