我有一个数据框:
ID Name L Prob
044FB2AE X L0 1.0
044FB2AE X L1 0.4
044FB2AE X L1 0.3
044FB2AE X L2 0.6
044FB2AE X L2 0.3
044F3333 Y L0 0.1
044F3333 Y L0 0.4
044F3333 Y L1 0.3
044F3333 Y L2 0.6
044F3333 Y L2 0.4
我想返回一个数据框,用于计算每个级别L中每个名字的概率总和。
因此,对于上述结果,结果应该是这样的数据帧:
ID Name L Prob
044FB2AE X L0 1.0
044FB2AE X L1 0.7
044FB2AE X L2 0.9
044F3333 Y L0 0.5
044F3333 Y L1 0.3
044F3333 Y L2 1.0
我知道我需要根据姓名和L对其进行分组,
df.groupby(['Name','L'])
但是,我如何总结每个分组中的内容?
答案 0 :(得分:1)
您似乎需要groupby
和GroupBy.sum
:
df = df.groupby(['ID','Name','L'], as_index=False, sort=False).Prob.sum()
print (df)
ID Name L Prob
0 044FB2AE X L0 1.0
1 044FB2AE X L1 0.7
2 044FB2AE X L2 0.9
3 044F3333 Y L0 0.5
4 044F3333 Y L1 0.3
5 044F3333 Y L2 1.0
df = df.groupby(['Name','L'], as_index=False, sort=False).Prob.sum()
print (df)
Name L Prob
0 X L0 1.0
1 X L1 0.7
2 X L2 0.9
3 Y L0 0.5
4 Y L1 0.3
5 Y L2 1.0