簡體   English   中英

Sumifs excel 公式在 Pandas

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM