作者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://webptt.com/cn.aspx?n=bbs/Python/M.1593515317.A.F62.html
1F:→ mantour: 我觉得你的规则还不够明确。 07/01 04:41
2F:→ mantour: 如果有一客户A订单金额依序为500,200,200,300,800, 07/01 04:41
3F:→ mantour: 然後汇了一笔800,你想要显示哪一笔或哪几笔订单呢。 07/01 04:41
4F:→ rounders: 这种另列清单处理 07/01 10:04
5F:→ rounders: 汇款是有期限的 所以依照日期 如金额不合可能因汇费或 07/01 10:04
6F:→ rounders: 漏中间单等原因,需要联络客户,这目的是把大部分余额0 07/01 10:04
7F:→ rounders: 的资料自动核对,就只用处理少部分异常 07/01 10:04
8F:推 Czero: 试试pandas的cumsum应该可以写的较为简洁 07/03 00:12