Groupby列名称,并将结果添加为其他列

问题描述 投票:0回答:1

我有一个像这样的数据框:

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,然后将每个组的meanmedian添加为新列。所以我的预期输出如下所示:

   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

我该如何执行最后一个步骤?

python pandas pandas-groupby
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.