Python数据处理:如何自动插入相关数据到工作表中

复制代码
    def price_insert_15_20_30(self,df,column):
        df = df.rename(columns={column:'sku'})
        data = pd.read_excel(r'C:\Users\wangkejun\Desktop\orderadjust\tempdata\caculatetemp.xlsx')
        data['sku'] = df['sku']
        columns = list(data.columns)
        data = pd.merge(data,df,on=['sku'],how='left',suffixes=['','_r'])

        data['平台佣金率'] = data.apply(lambda x:x['平台佣金率补充'] if pd.notna(x['平台佣金率补充']) else x['平台佣金率'],axis=1)
        data['采购价'] = data.apply(lambda x:x['采购价补充'] if pd.notna(x['采购价补充']) else x['采购价'],axis=1)
        data['实重'] = data.apply(lambda x:x['计费重补充'] if pd.notna(x['计费重补充']) else x['实重'],axis=1)


        data = data.loc[:,columns]
        df = data.loc[:,['sku']]
        for i in [0.15,0.2,0.3]:
            datatemp = data.copy()
            datatemp['毛利率'] = i
            datatemp = datatemp.apply(self.calculate_price, axis=1)
            title = f'{i*100}%'
            datatemp = datatemp.rename(columns = {'price':title})
            datatemp = datatemp.loc[:,['sku','平台佣金率', '采购价', '计费重',title]]
            df = pd.merge(df,datatemp,how='left',on=['sku'])

        df = df.rename(columns={'sku':column})
        return df   
      
 # 费用相关数据
dfall['系统SKU'] = dfall['系统SKU'].astype('object')
dfbasicprice = pd.merge(dfall.loc[:,['系统SKU']],dfbasic,how='left',on=['系统SKU'])

dfbasicprice = dfbasicprice.dropna(subset=['系统SKU'])

dfbasicprice = caculate().price_insert_15_20_30(dfbasicprice,'系统SKU')

dfzongbiaojilu= dfbasicprice.loc[:, ['系统SKU', '平台佣金率', '采购价', '计费重']]
dfzongbiaojilu2= dfbasic.loc[:, ['系统SKU', '平台佣金率补充', '采购价补充', '计费重补充']]


merged_df = dfzongbiaojilu.merge(dfzongbiaojilu2, on='系统SKU')

        # 去除NaN值
merged_df = merged_df.dropna()

        # 插入数据到工作表
self.worksheetinsert(merged_df, number=1, worksheetid=excelsheet['总表新品数据记录表']) 

具体来说,你首先将 dfall['系统SKU'] 的数据类型更改为 'object',然后使用 pd.merge() 函数将 dfbasic 和 dfall 进行左连接,基于共同的列 '系统SKU'。接下来,你删除了包含 NaN 值的行,并将结果保存在 dfbasicprice 中。

然后,你对 dfbasicprice 调用了 caculate().price_insert_15_20_30(dfbasicprice, '系统SKU'),并传入了参数 '系统SKU'。这应该是一个自定义的计算函数,根据传入的 DataFrame 和列名进行价格计算和插入操作。请确保该函数能够正常运行,并返回预期的结果。

接下来,你从 dfbasicprice 和 dfbasic 中选择了特定的列,并分别保存在 dfzongbiaojilu 和 dfzongbiaojilu2 中。

最后,你使用 merge() 函数将 dfzongbiaojilu 和 dfzongbiaojilu2 基于列 '系统SKU' 进行合并,并保存在 merged_df 中。最后,你删除了包含 NaN 值的行,并将结果插入到工作表中

相关推荐
张张123y5 小时前
后端第一课:输入 URL 后发生了什么?我用手写 Socket 把全链路跑通了
python·websocket·ai·socket·url·后端开发
白帽攻防录7 小时前
SRC 挖洞:PostScript 打印机驱动双 RCE,打印服务器怎么变成内网跳板
开发语言·网络安全·php·内网安全
十年Java程序媛7 小时前
Java枚举Enum完整教程|替代静态常量,开发与面试要点
java·开发语言·spring boot·后端·面试
全栈弄潮儿7 小时前
Python实战第7期:字典与集合
后端·python·编程语言
2603_965148117 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
xixiaoyunya8 小时前
Python 异步编程入门:用 asyncio 轻松实现并发任务
开发语言·python·php
把我格子衫拿来8 小时前
Dice 很高就够了吗?分割评价中的 IoU、表面距离与 HD95
python·图像分割·模型评估·医学影像·dice
学逆向的8 小时前
C 循环结构的执行效率分析
c语言·开发语言·数据结构·网络安全
曲径海盗8 小时前
【Python 学习第 31 天】复习:变量与数据类型 等 3 题
python·学习笔记·编程入门
Data_Journal9 小时前
如何绕过 Cloudflare:网页抓取的最佳方法
网络·python