来自 pd.concate groupby() 数据帧的 csv 格式 python

csv format of dataframe from pd.concate groupby() dataframe in python

假设我有多个格式为

的数据框
Id no A B
1 2 1
2 3 5
2 5 6
1 6 7

我想按“Id”对数据框进行分组并应用攻击,然后将新值存储在不同的数据框中,例如

df_calc = pd.DataFrame(columns=["Mean", "Median", "Std"])
for df in dataframes:
        mean = df.groupby(["Id"]).mean()
        median = df.groupby(["Id"]).median()
        std = df.groupby(["Id"]).std()

        df_f = pd.DataFrame(
            {"Mean": [mean], "Median": [median], "Std": [std]})

df_calc = pd.concat([df_calc, df_f])

这是我的最终数据帧 df_calc 的格式

但我希望它看起来像这样

我该怎么做?

您可以尝试 agg 多个函数,然后交换列级别并对列重新排序:

out = df.groupby('Id no').agg({'A': ['median','std','mean'],
                               'B': ['median','std','mean']})

print(out)

           A                     B
      median       std mean median       std mean
Id no
1        4.0  2.828427  4.0    4.0  4.242641  4.0
2        4.0  1.414214  4.0    5.5  0.707107  5.5
out = out.swaplevel(0, 1, 1).sort_index(axis=1)

print(out)

      mean      median            std
         A    B      A    B         A         B
Id no
1      4.0  4.0    4.0  4.0  2.828427  4.242641
2      4.0  5.5    4.0  5.5  1.414214  0.707107