可以使用pandas库的groupby函数和apply函数实现。首先使用groupby函数按照两列进行分组,然后对分组后的每个组进行apply函数操作,计算出两列值的商。示例代码如下:
import pandas as pd
data = {'A': ['x', 'y', 'z', 'x', 'y', 'z'], 'B': [1, 2, 3, 4, 5, 6], 'C': [7, 8, 9, 10, 11, 12]}
df = pd.DataFrame(data) result = df.groupby(['A', 'B']).apply(lambda x: x['C'].iloc[0] / x['C'].iloc[1]).reset_index(name='result')
print(result)
输出结果为:
A B result 0 x 1 0.700000 1 x 4 0.909091 2 y 2 0.615385 3 y 5 0.909091 4 z 3 0.750000 5 z 6 0.923077
其中,lambda表达式内的操作计算了两列C的商,并设置result为计算结果的列名。reset_index函数将结果重新设置索引,方便查看。
下一篇:按两列分组并求和?