作者rounders (望仔)
看板Python
標題[問題] 條件扣減金額及消訂單
時間Tue Jun 30 19:08:35 2020
大家好
我有一些訂單資料(data)有日期、人名、金額,
客戶會匯錢進來(remit),想把匯入的錢日期順序扣減訂單金額併入data第四欄
如果匯入餘額為0,就把符合金額訂單列出;如果金額無法剛好抵訂單就產出另一資料
再以人工處理。
目前只想到先抓人名產出各別DF的金額欄轉為LIST,再用迴圈扣除判斷餘數是否為0或負數
剛寫還是很卡
所以上來問問這樣做是可行的嗎?有什麼好方法或是方向呢,感謝大家了。
訂單和匯入款如下
import pandas as pd
data = pd.DataFrame(
[['0601', 'Ming', 500],
['0602', 'Ming', 800],
['0601', 'Wang', 600],
['0602', 'Wang', 400],
['0603', 'Wang', 1500],
['0604', 'Wang', 5500],
['0601', 'Lin', 1500],
['0602', 'Lin', 2500],
['0603', 'Lin', 3500]],
columns=['Date', 'Name', 'Trade'])
remit = pd.DataFrame(
[['Ming', 1300],
['Wang', 2500],
['Lin', 1800]],
columns=['Name', 'remit'])
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.189.27 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1593515317.A.F62.html
→ mantour: 我覺得你的規則還不夠明確。 07/01 04:41
→ mantour: 如果有一客戶A訂單金額依序為500,200,200,300,800, 07/01 04:41
→ mantour: 然後匯了一筆800,你想要顯示哪一筆或哪幾筆訂單呢。 07/01 04:41
→ rounders: 這種另列清單處理 07/01 10:04
→ rounders: 匯款是有期限的 所以依照日期 如金額不合可能因匯費或 07/01 10:04
→ rounders: 漏中間單等原因,需要聯絡客戶,這目的是把大部分餘額0 07/01 10:04
→ rounders: 的資料自動核對,就只用處理少部分異常 07/01 10:04
推 Czero: 試試pandas的cumsum應該可以寫的較為簡潔 07/03 00:12