计算在pandas中的不同行中的多列的平均值

时间:2018-04-10 15:46:15

标签: python pandas

我有一个像这样的csv文件:

-Species-    -Strain-       -A-       -B-       -C-       -D-
 Species1    Strain1.1         0.2       0.1       0.1       0.4
 Species1    Strain1.1         0.2       0.7       0.2       0.2
 Species1    Strain1.2         0.1       0.6       0.1       0.3
 Species1    Strain1.1         0.2       0.6       0.2       0.6
 Species2    Strain2.1         0.3       0.3       0.3       0.1
 Species2    Strain2.2         0.6       0.2       0.6       0.2
 Species2    Strain2.2         0.2       0.1       0.4       0.2

我想计算每列(A-D)每个独特菌株的平均值(平均值)我将如何进行呢?

我尝试了df.groupby(['Strain','Species']).mean().mean(1),但似乎仍然在结果数据框中给出了多个版本的菌株,而不是每个独特菌株的每个菌落的均值。

基本上我想要A,B,C& A的平均结果。 D每个菌株。

道歉不清楚,我正在努力解决这个问题,而且我对编程很陌生!

1 个答案:

答案 0 :(得分:1)

IIUC,你只需要打电话

df.groupby(['Species', 'Strain']).mean()

                      A         B         C    D 
Species   Strain                               
Species1  Strain1.1  0.2  0.466667  0.166667  0.4
          Strain1.2  0.1  0.600000  0.100000  0.3
Species2  Strain2.1  0.3  0.300000  0.300000  0.1
          Strain2.2  0.4  0.150000  0.500000  0.2

当您致电df.groupby(['Strain','Species']).mean().mean(1)时,您正在采取的措施是采用ABCD中4种方式的均值。 mean(1)表示在第一个轴上取平均值(在列上)。