python如何实现将一笔交易记录按比例分成多笔记录

有一份销售人员的销售记录,其中有几笔交易记录由不同的销售人员按照比例分成,如何将这些需要分成的交易记按照分成比例拆分成多条记录。

如图所示:
img

源数据:
批单 销售金额(万元) 成交利率 销售日期 销售人员A 销售人员A分成比例 销售人员B 销售人员B分成比例
XS001 10,000.00 4.2500 2020/9/29 周某某 100%
XS002 10,000.00 4.5000 2020/10/30 沈某某 100%
XS003 10,000.00 3.6800 2020/11/26 周某某 100%
XS004 10,000.00 4.2000 2020/12/16 王某某 30% 胡某某 70%
XS005 12,500.00 3.7000 2021/05/21 沈某某 100%
XS006 15,000.00 4.6000 2020/12/10 周某某 100%
XS007 16,000.00 4.2000 2021/05/07 沈某某 40% 胡某某 60%
XS008 20,000.00 4.0000 2020/9/28 周某某 100%
XS009 20,000.00 4.2500 2020/9/28 沈某某 100%
XS010 20,000.00 4.1900 2020/12/11 沈某某 100%

img
期望的结果
销售审批单 销售金额(万元) 成交利率 销售日期 销售人员
XS001 10,000.00 4.2500 2020/9/29 周某某
XS002 10,000.00 4.5000 2020/10/30 沈某某
XS003 10,000.00 3.6800 2020/11/26 周某某
XS004 3,000.00 4.2000 2020/12/16 王某某
XS004 7,000.00 4.2000 2020/12/16 胡某某
XS005 12,500.00 3.7000 2021/05/21 沈某某
XS006 15,000.00 4.6000 2020/12/10 周某某
XS007 6,400.00 4.2000 2021/05/07 沈某某
XS007 9,600.00 4.2000 2021/05/07 胡某某
XS008 20,000.00 4.0000 2020/9/28 周某某
XS009 20,000.00 4.2500 2020/9/28 沈某某
XS010 20,000.00 4.1900 2020/12/11 沈某某

思路:
第一步:打开文件(废话),xls转换为xlsx
第二步:对原表格进行遍历,将整理完的表格存入dict字典
第三步:由字典生成DataFrame并保存

import time
import easygui as eg
from win32com.client.gencache import EnsureDispatch
import pandas as pd
file_path = eg.fileopenbox(msg = "选择文件")   #选择文件
if file_path[-1] == "s":
    # 转换文件
    excel = EnsureDispatch('Excel.Application')
    wb = excel.Workbooks.Open(file_path)

    wb.SaveAs(file_path+"x", FileFormat = 51)
    wb.Close()
    excel.Application.Quit()
    file_path += "x"
old = pd.read_excel(file_path)  #pandas打开xlsx
new_dict = {"销售审批单":[],"销售金额(万元)":[],"成交利率":[],"销售日期":[],"销售人员":[]}
for index,row in old.iterrows():
    new_dict["销售审批单"].append(row['批单'])
    new_dict["成交利率"].append(row["成交利率"])
    new_dict["销售日期"].append(str(time.strftime("%Y-%m-%d-",time.strptime(str(row['销售日期']), "%Y-%m-%d %H:%M:%S")))) #日期转换
    print(float(row["销售金额(万元)"])*row['销售人员A分成比例'])
    if row['销售人员B'] != row['销售人员B']:   #判断'销售人员B'是否为空,为空时他不等于他自己
        new_dict["销售金额(万元)"].append((float(row["销售金额(万元)"])*row['销售人员A分成比例']))  #对销售金额进行计算
        new_dict["销售人员"].append(row["销售人员A"])
    else:
        new_dict["销售金额(万元)"].append((float(row["销售金额(万元)"])*row['销售人员A分成比例']))  #对销售金额进行计算
        new_dict["销售人员"].append(row["销售人员A"])
        new_dict["销售审批单"].append(row['批单'])
        new_dict["成交利率"].append(row["成交利率"])
        new_dict["销售日期"].append(str(time.strftime("%Y-%m-%d-",time.strptime(str(row['销售日期']), "%Y-%m-%d %H:%M:%S"))))  #日期转换
        new_dict["销售金额(万元)"].append((float(row["销售金额(万元)"])*row['销售人员B分成比例']))  #对销售金额进行计算
        new_dict["销售人员"].append(row["销售人员B"])
new = pd.DataFrame(new_dict,index=None,columns=["销售审批单","销售金额(万元)","成交利率","销售日期","销售人员"])
new.to_excel("output.xlsx")