python中多列的自动平均值

扎眼的阳光 python 528

原文标题automatic mean of multiple columns in python

我有一个包含多个变量的数据集。我试图根据变量名称的结尾对这些变量进行分组,并计算每组的平均值。这是我的数据集的示例:

data = {'AST_0-01': [1, 2, 3], 
        'AST_0-02': [4, 5, 6],
        'AST_1-01': [7, 8, 9],
        'AST_1-02': [1, 2, 3],
        'AST_2-01': [4, 5, 6],
        'AST_2-02': [7, 8, 9]}

df = pd.DataFrame(data)

我要做的是将以相同数字结尾的变量分组,例如:[AST_0-01, AST_1-01, AST_2-01][AST_0-02, AST_1-02, AST_2-02],然后获取均值。

原文链接:https://stackoverflow.com//questions/71477149/automatic-mean-of-multiple-columns-in-python

回复

我来回复
  • ddejohn的头像
    ddejohn 评论

    首先,“转置”您的数据框,以便您可以按字符串名称进行分组

    In [3]: df = df.T.reset_index()
    
    In [4]: df
    Out[4]:
          index  0  1  2
    0  AST_0-01  1  2  3
    1  AST_0-02  4  5  6
    2  AST_1-01  7  8  9
    3  AST_1-02  1  2  3
    4  AST_2-01  4  5  6
    5  AST_2-02  7  8  9
    
    In [5]: df.groupby(df["index"].str[-2:]).mean()
    Out[5]:
             0    1    2
    index
    01     4.0  5.0  6.0
    02     4.0  5.0  6.0
    

    这个平均值被分解为原始数据框中的三个单独的行,但如果你想要“总”平均值,那么

    In [6]: df.groupby(df["index"].str[-2:]).mean().sum(axis=1)
    Out[6]:
    index
    01    15.0
    02    15.0
    dtype: float64
    
    2年前 0条评论