我的数据框df
包含以下列:a
,b
,c
,d
。我希望按a
对数据进行分组并进行一些计算。我将在R中提供这个计算的代码。我的主要问题是如何在熊猫中做同样的事情?
library(dplyr)
df %>%
group_by(a) %>%
summarise(mean_b = mean(b),
qt95 = quantile(b, .95),
diff_b_c = max(b-c),
std_b_d = sd(b)-sd(d)) %>%
ungroup()
这个例子是合成的,我只想了解pandas syntaxis
答案 0 :(得分:4)
我相信您需要使用GroupBy.apply
自定义功能:
def f(x):
mean_b = x.b.mean()
qt95 = x.b.quantile(.95)
diff_b_c = (x.b - x.c).max()
std_b_d = x.b.std() - x.d.std()
cols = ['mean_b','qt95','diff_b_c','std_b_d']
return pd.Series([mean_b, qt95, diff_b_c, std_b_d], index=cols)
df1 = df.groupby('a').apply(f)