使用groupby和cumsum在pandas中获得一个新列

问题描述 投票:0回答:1

我有以下数据框:

班级 已收到 已发布
FD 10 0
FD 0 2
RM 5 0
RM 0 3
FD 0 2
下午 5 0
下午 1 0
RM 1 0
FD 4 0

我需要下面的 DF

班级 已收到 已发布 剩余数量
FD 10 0 10
FD 0 2 8
RM 5 0 5
RM 0 3 2
FD 0 2 6
下午 5 0 5
下午 1 0 6
RM 1 0 3
FD 4 0 10

剩余数量列是每个班级收到的-发出的cumsum()。我尝试过不同的方法,但我不明白。

python pandas cumsum
1个回答
0
投票
df['Remaining Quantity'] = df.groupby('Class').apply(lambda x: x['Received'].cumsum() - x['Issued'].cumsum()).reset_index(drop=True)
© www.soinside.com 2019 - 2024. All rights reserved.