基于列扩展名的DataFrame列的平均值

时间:2019-03-22 11:11:17

标签: python string dataframe jupyter-notebook mean

我在Jupiter中有一个数据框 A ,其外观如下

Index Var1.A.1  Var1.B.1  Var1.CA.1  Var2.A.1  Var2.B.1  Var2.CA.1
0      1         21         3          3         4        4 
1      3         5          4          9         5        1
....
100    9         75        2           4         8        2

我想根据名称的扩展名来评估平均值,即

  • .A.1的平均值
  • .B.1的均值
  • .CA.1的平均值

例如,为了评估扩展名为.A.1的变量的平均值,我尝试了以下方法,但没有返回我想要的结果

List=['.A.1', '.B.1', '.CA.1']
A[List[List.str.contains('.A.1')]].mean() 

但是,通过这种方式,我得到了不同变量的平均值,也得到了CA.1,这不是它要查找的内容。

有什么建议吗?

谢谢

3 个答案:

答案 0 :(得分:1)

如果要在第一个mean之后使用所有值按行.,请使用groupby和lambda函数以及mean

df = df.groupby(lambda x: x.split('.', 1)[-1], axis=1).mean()
print (df)
     A.1   B.1  CA.1
0    2.0  12.5   3.5
1    6.0   5.0   2.5
100  6.5  41.5   2.0

答案 1 :(得分:1)

这是一个不错的选择:

assign ( paste0("tsPMR6", i ) , tsPMR6) 

答案 2 :(得分:0)

dfA.filter(like='.A.1')-为您提供包含“ .A.1”子字符串的列