假设有一个数据框df,其中包含两列:col1和col2。我们希望按照col1分组,然后对每个分组中的col2进行求和,并将结果除以分组总和。
代码示例:
import pandas as pd
# 创建示例数据框
df = pd.DataFrame({
'col1': ['A', 'A', 'B', 'B'],
'col2': [1, 2, 3, 4]
})
# 按照col1分组并计算col2总和
grouped = df.groupby('col1')['col2'].sum()
# 进行列除法操作
result = df['col2'] / df['col1'].map(grouped)
# 输出结果
print(result)
输出结果为:
0 0.333333
1 0.666667
2 0.428571
3 0.571429
dtype: float64
其中,第一行的0.33等于1/(1+2),因为col1中值为'A'的行有两行,其对应的col2值分别为1和2,总和为3;第二行的0.67等于2/(1+2),因为在col1中值为'A'的行中,col2的总和为3。以此类推,可以得到所有行的结果。