假设有一个数据集包含三列A、B、C,需按C列分组计算A列和B列之差。可以使用pandas的groupby方法和apply方法实现:
import pandas as pd
# 生成示例数据
data = {'A': [1, 2, 3, 1, 2, 3], 'B': [4, 5, 6, 7, 8, 9], 'C': ['X', 'X', 'X', 'Y', 'Y', 'Y']}
df = pd.DataFrame(data)
# 按C列分组计算A列和B列之差
df['D'] = df.groupby('C').apply(lambda x: x['B'] - x['A']).reset_index(drop=True)
# 输出结果
print(df)
输出结果为:
   A  B  C  D
0  1  4  X  3
1  2  5  X  3
2  3  6  X  3
3  1  7  Y  6
4  2  8  Y  6
5  3  9  Y  6
其中D列即为计算后的差值。