我的資料框如下所示:
| 客戶編號 | 訂單價值 | year_ordered | 支付成功 |
|---|---|---|---|
| 1 | 50 | 1980 | 1 |
| 1 | 75 | 2017 | 0 |
| 1 | 10 | 2020 | 1 |
| 2 | 55 | 2000 | 1 |
| 2 | 300 | 2007年 | 1 |
| 2 | 15 | 2010 | 0 |
我想知道客戶在前幾年為特定訂單成功支付的總金額。
預期輸出如下:
| 客戶編號 | 訂單價值 | year_ordered | 支付成功 | total_successfully_previously_paid |
|---|---|---|---|---|
| 1 | 50 | 1980 | 1 | 0 |
| 1 | 75 | 2017 | 0 | 50 |
| 1 | 10 | 2020 | 1 | 50 |
| 2 | 55 | 2000 | 1 | 0 |
| 2 | 300 | 2007年 | 1 | 55 |
| 2 | 15 | 2010 | 0 | 355 |
我得到的最接近的是:
df.groupby(['customer_nr', 'payment_successful'], as_index=False)['order_value'].sum()
這只是給了我每個客戶所有時間成功和未成功支付的總金額。它不考慮僅選擇以前的訂單參與總和。
任何幫助表示贊賞!
uj5u.com熱心網友回復:
嘗試:
df["total_successfully_previously_paid"] = (df["payment_successful"].mul(df["order_value"])
.groupby(df["customer_nr"])
.transform(lambda x: x.cumsum().shift().fillna(0))
)
>>> df
customer_nr ... total_successfully_previously_paid
0 1 ... 0.0
1 1 ... 50.0
2 1 ... 50.0
3 2 ... 0.0
4 2 ... 55.0
5 2 ... 355.0
[6 rows x 5 columns]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/431726.html
標籤:Python 熊猫 数据框 和 熊猫-groupby
下一篇:獲取每個集群中的元素
