weixin_43660316 2021-07-03 07:57 采纳率: 69.2%
浏览 21

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 沈某某

  • 写回答

1条回答 默认 最新

  • doudou720 2022-08-11 12:20
    关注

    思路:
    第一步:打开文件(废话),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")
    
    评论 编辑记录

报告相同问题?

悬赏问题

  • ¥15 MacBook pro m3max上用vscode运行c语言没有反应
  • ¥15 结构功能耦合指标计算
  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊
  • ¥15 快速扫描算法求解Eikonal方程咨询