我有一个数据框,我想对它应用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),因为(art&ark)和(bag&bar)符合列名测试,所以应该忽略area1和area2 0对。
但是,由于(ark&bag)不共享(n = 2)个初始字符,因此不应该忽略area3对。
我正在寻找的输出如下
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)
任何帮助或想法将不胜感激。
编辑:两种测试仅需考虑按字母顺序排序的相邻列(假设数据框已采用这种格式)