我试图得到D10,D50,D90列的平均值,它们在“Sample_Name”中有相同的字符串[-8,-2]。它是:P1_SUP,P1_0.2,P1_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.str
与groupby
一起使用
new_df = df.groupby(df["Sample_Name"].str[-8:-2]).mean()
print(new_df)
但会产生一个错误:
DataError: No numeric types to aggregate.
目前没有回答
相关问题 更多 >
编程相关推荐