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

Python 基于列名称扩展名的DataFrame列的平均值,python,string,dataframe,jupyter-notebook,mean,Python,String,Dataframe,Jupyter Notebook,Mean,我在木星上有一个数据帧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

我在木星上有一个数据帧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,这不是它想要的

有什么建议吗


谢谢

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

如果需要,请按第一次
之后的所有值对每行进行
平均值
使用
groupby
和lambda函数和
平均值

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

下面是第三个选项:

columns = A.columns
A[[s for s in columns if ".A.1" in s]].stack().reset_index().mean() 

样本数据的预期输出是什么?