假设有一个数据集包含三列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列即为计算后的差值。