我有一个像这样的数据框:
import pandas as pd
df = pd.DataFrame({
'stuff_1_var_1': range(5),
'stuff_1_var_2': range(2, 7),
'stuff_2_var_1': range(3, 8),
'stuff_2_var_2': range(5, 10)
})
stuff_1_var_1 stuff_1_var_2 stuff_2_var_1 stuff_2_var_2
0 0 2 3 5
1 1 3 4 6
我想基于列标题进行groupby
,然后将每个组的mean
和median
添加为新列。所以我的预期输出如下所示:
stuff_1_var_1 stuff_1_var_2 stuff_2_var_1 stuff_2_var_2 stuff_1_var_mean stuff_1_var_median stuff_2_var_mean stuff_2_var_median
0 0 2 3 5 1 1 4 4
1 1 3 4 6 2 2 5 5
我直到:
df = df.T
pattern = df.index.str.extract('(^stuff_\d_var_)', expand=False)
dfgb = df.groupby(pattern).agg(['mean', 'median']).T
stuff_1_var_ stuff_2_var_
0 mean 1 4
median 1 4
1 mean 2 5
median 2 5
我该如何执行最后一个步骤?