我已经总结了包含 col1、col2、col3 和 count 的数据框,需要在 count 上添加不同的权重。
数据集如下:
# Current result
col1 col2 col3 Count Weightage_count
---------------------------------------------
1: A S1 X110 2 2
2: A S1 X150 2 0.5
3: A S2 X212 2 1
4: A S2 X200 1 0.5
5: A S2 X211 1 0.25
6: B S3 X311 4 4
7: C S4 X222 3 1.5
data = {'Col1':['A','A','A','A','A','B','C'],
'Col2':['S1','S1','S2','S2','S2','S3','S4'],
'Col3':['X110','X150','X212','X200','X211','X311','X222'],
'Count': [2,2,2,1,1,4,3],
'Weightage_count':[2, 0.5, 1, 0.5, 0.25, 4, 1.5]}
df = pd.DataFrame(data)
想要根据col1和col2计算结果。
- 结果 = (通过Col1和Col2加权总数)/(通过Col1和Col2的总数)
期望的结果。
Col1 Col2 Result
-------------------
1 A S1 0.625
2 A S2 0.5
3 B S3 1
4 C S4 0.5
eval
的粉丝。此外,您可以在其中分配一个新列:df.groupby(['Col1', 'Col2']).sum().eval('Result = Weightage_count / Count').Result.reset_index()
。 - piRSquared