pandas excelWriter 多个表覆盖问题

 with pd.ExcelWriter(f"./handling_data/处理后的数据.xlsx", 'openpyxl') as writer1:
            for i in range(0, 5):
                # 先建立文件夹
                datas = pd.read_excel(fp, sheet_name=i, parse_dates=True, dtype={"value": np.float32})
                os.makedirs(f"./grouped/{i}",exist_ok=True)
            # 调用函数并打印结果
                bads = find_explict_abnormal_data(datas)
                # print(f"{bads.__len__()} abnormal datas:\n{datas.iloc[bads]}")
                #准备保存文件到csv文件中。
                datas.drop(columns='diff',inplace=True)

                #print(f"saving {i}")
                # 按小时和weekday分组
                for (label1,df1),(label2,df2) in zip(_group_by_hour(5,datas.drop(index=datas.index[bads])).items(), _group_by_weekday(data=datas.drop(index=datas.index[bads])).items()):
                    df1.to_csv(f"./grouped/{i}/{label1}.csv",index=False,compression=None)
                    df2.to_csv(f"./grouped/{i}/{label2}.csv",index=False,compression=None)
                # 输出
                datas['bad'] = False
                datas.loc[bads,'bad'] = True
                _L.acquire()
                datas.iloc[extended_abnormal_data(datas.shape[0],bads,2)].to_excel(writer1,sheet_name=f'{i}表异常数据表及周围2个',index=False)
                datas.drop(labels=bads,inplace=False).to_excel(writer1,sheet_name=f'表{i}正常数据',index=False)
                _L.release()
        fp.close()

这是我修改后不覆盖的,覆盖的原因是把excelWriter放在for循环里面,我觉得是因为excelWriter有个记忆当前sheet的东西,前后语境关了之后这个东西重置,所以如果你放循环内,就会一直重置,一直覆盖,所以把这个逻辑写到外面就好了。

  • 13
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值