[英]Sumifs excel formula in Pandas
我已經看到這里回答了很多 SUMIFS 問題,但與我需要的問題有很大不同。
第一個交易數據幀包含交易 ID 和 C_ID
transaction C_ID
1 101
2 103
3 104
4 101
5 102
6 104
第二個客戶數據框包含 C_ID、開/關、金額
C_ID On/Off Amount
102 On 320
101 On 400
101 On 200
103 On 60
104 Off 80
104 On 100
所以我想根據 C_ID 計算金額,條件是客戶數據框中的“開/關”列。 生成的交易數據框應該是
transaction C_ID Amount
1 101 600
2 103 60
3 104 100
4 101 600
5 102 320
6 104 100
所以這是 EXCEL 中關於如何計算金額的公式
=SUMIFS(Customer.Amount, Customer.C_ID = Trade.C_ID, Customer.On/Off = On)
所以我想使用 Pandas 在 Python 中復制這個特定的公式
您可以對過濾后的數據使用groupby()
來計算總和,並map
將新列分配給事務數據。
s = df2[df2['On/Off']=='On'].groupby('C_ID')['Amount'].sum()
df1['Amount'] = df1['C_ID'].map(s)
我們過濾groupby
+ reindex
assign
df1['Amount']=df2.loc[df2['On/Off']=='On'].groupby(['C_ID']).Amount.sum().reindex(df1.C_ID).tolist()
df1
Out[340]:
transaction C_ID Amount
0 1 101 600
1 2 103 60
2 3 104 100
3 4 101 600
4 5 102 320
5 6 104 100
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.