Python 如何在忽略满足测试要求的值的同时平均熊猫中的分组值?

Python 如何在忽略满足测试要求的值的同时平均熊猫中的分组值?,python,pandas,Python,Pandas,我有一个要应用groupby().mean()的数据帧,但需要应用一个测试并忽略满足它的值 如下表所示,我想按区域分组,然后平均结果。 但是,我希望忽略列名称中前n个字符共有的列中出现的0对 我觉得用正则表达式和迭代可以做到这一点,但我看不到 area art ark bag bar area1 4 8 2 7 area1 0 0 6 3 area2 4 4 4 1 area2 6 2

我有一个要应用groupby().mean()的数据帧,但需要应用一个测试并忽略满足它的值

如下表所示,我想按区域分组,然后平均结果。 但是,我希望忽略列名称中前n个字符共有的列中出现的0对

我觉得用正则表达式和迭代可以做到这一点,但我看不到

area    art   ark   bag  bar

area1   4     8     2    7
area1   0     0     6    3
area2   4     4     4    1
area2   6     2     0    0
area3   6     1     1    8
area3   7     0     0    3
在(n=2)的上表中,应忽略区域1和区域2 0对,因为(art&ark)和(bag&bar)符合列名测试

但是,不应忽略区域3对,因为(方舟和袋子)不共享(n=2)首字母

我正在寻找的输出如下所示

area      ark         art         bag        bar

area1      4           8        (2+6/2)     (7+3/2)
area2   (4+6/2)     (4+2/2)        4          1
area3   (6+7/2)     (1+0/2)     (1+0/2)     (8+3/2)
任何帮助或想法都将不胜感激


编辑:两个测试只需要考虑按字母顺序排序的相邻列(假设TIE数据框已经是这种格式)< /P> <代码> DF.替换(0,P.NP.N.). GROMPBY(“区域”).(?)/代码>?您的问题听起来有点泛泛而谈.如前所述,我们是否需要在所有两列中搜索匹配的名称?不,广安,抱歉。那是模糊的。仅按字母顺序排序的相邻列(已处理)。BallpointBen。这将从计算中删除所有零,无论它们是否满足测试要求。

df.replace(0,pd.np.nan)。groupby('area')。mean()
?您的问题听起来有点泛化。如前所述,我们是否需要在所有两列中搜索匹配的名称?不,广安,抱歉。那是模糊的。仅按字母顺序排序的相邻列(已处理)。BallpointBen。这将从计算中删除所有零,无论它们是否满足测试要求。