查找具有相同字符串值的行组的平均值

2024-09-30 00:32:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图得到D10,D50,D90列的平均值,它们在“Sample_Name”中有相同的字符串[-8,-2]。它是:P1_SUPP1_0.2P1_0.4等等

    D10     D50     D90     Sample_Name
1   4.46    19.81   45.32   TIGR01_P1_SUP_1
2   2.72    14.22   38.41   TIGR01_P1_SUP_1
3   2.3     12.05   27.58   TIGR01_P1_SUP_1
4   6.21    19.81   45.32   TIGR01_P1_SUP_2
5   3.78    16.78   32.55   TIGR01_P1_SUP_2
6   3.2     14.22   32.55   TIGR01_P1_0.2_1
7   2.72    12.05   27.58   TIGR01_P1_0.2_1
8   5.27    19.81   38.41   TIGR01_P1_0.2_2
9   3.78    14.22   32.55   TIGR01_P1_0.2_2
10  6.21    23.37   53.48   TIGR01_P1_0.4_1
.    .        .       .            .
.    .        .       .            .
.    .        .       .            .

expected output:

    Av_D10  Av_D50  Av_D90  Sample_Name
1    3.89   16.53   37.84    P1_SUP
2    3.74   15.07   32.77    P1_0.2
3    6.21   23.37   53.48    P1_0.4
.    .        .       .            .
.    .        .       .            .
.    .        .       .            .

为此,我尝试将pandas.Series.strgroupby一起使用

new_df = df.groupby(df["Sample_Name"].str[-8:-2]).mean()
print(new_df)

但会产生一个错误:

DataError: No numeric types to aggregate.


Tags: sample字符串namedfnewsup平均值groupby

热门问题