在 Python 中,我有一个 pandas 数据框 df
。
ID Ref Dist
A 0 10
A 0 10
A 1 20
A 1 20
A 2 30
A 2 30
A 3 5
A 3 5
B 0 8
B 0 8
B 1 40
B 1 40
B 2 7
B 2 7
我想按 ID
和 Ref
进行分组,并取每组中 Dist
列的第一行。
ID Ref Dist
A 0 10
A 1 20
A 2 30
A 3 5
B 0 8
B 1 40
B 2 7
我想总结每个 ID
组中的 Dist
列。
ID Sum
A 65
B 55
我尝试这样做来完成第一步,但这只给我行的索引和 Dist
,所以我无法继续进行第二步。
df.groupby(['ID', 'Ref'])['Dist'].head(1)
如果有人能帮助我,那就太好了。 谢谢!
最佳答案
我相信这就是您要找的。
您需要使用first
的第一步,因为您需要groupby
中的第一个。完成后,使用 reset_index()
,这样您就可以在之后使用 groupby
并使用 ID
对其求和。
df.groupby(['ID','Ref'])['Dist'].first()\
.reset_index().groupby(['ID'])['Dist'].sum()
ID
A 65
B 55
关于python - Pandas :按两列分组,将第一列组中的第一个值相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51309258/