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]
,然后获取均值。
回复
我来回复-
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年前