为了说明我的问题,我有一个示例数据帧df = pd.DataFrame({'key1': [0, 0, 0, 0, 1, 1, 1, 1, 1, 1],
'key2': ['a', 'b', 'b', 'c', 'a', 'a', 'a', 'b', 'b', 'c'],
'key3': [10, 5, 15, 10, 5, 10, 20, 10, 20, 5],
'zdata': [2, 4, 2, 4, 3, 5, 6, 5, 5, 6]})
什么时候
^{pr2}$
生产zdata
mean
key1 key2 key3
0 a 10 2
b 5 4 * (new group1)
15 2 * (new group1)
c 10 4
1 a 5 3 * (new group2)
10 5 * (new group2)
20 6 * (new group2)
b 10 5
20 5
c 5 6
现在,我需要通过将key1和key2分组来找到zdata和key3的平均值,其中key3有一个“5”和任何其他数字(即上表中用*标记的行)
所以期望的结果是zdata
mean
key1 key2 key3
0 b 10 3
1 a 11.6 4.6
我确信一个lambda函数会像这个例子[Python Pandas Conditional Sums一样到达那里,但是这个问题被分为多个列
任何帮助都将不胜感激。在