使用多线程将多个变量导出到目标文件夹

这篇博客介绍了如何利用Python的多线程技术提高数据处理效率,特别是在需要将大量DataFrame对象导出到Excel文件时。通过创建并启动多个线程,每个线程独立处理一个DataFrame,实现了数据的并发写入,加快了文件导出的速度。示例代码展示了从创建DataFrame到使用线程导出的完整过程,虽然在本例中多线程并非必需,但作为多线程应用的一个实例,有助于理解其工作原理。
摘要由CSDN通过智能技术生成

使用多线程将多个变量导出到目标文件夹

工作需求:在处理海量数据时(数据库、数据文件等),单线程操作往往速度非常慢,为提高效率,可以使用多线程来处理。

这里做个记录,将多个变量使用多线程导入到目标文件夹中。

直接上代码:

import pandas as pd
import threading
import numpy as np

dfs = []
creatVar = locals()
listTemp = range(1, 10)
for i, s in enumerate(listTemp):
    creatVar["df" + str(i)] = pd.DataFrame(np.random.randn(100, 4), columns=list("ABCD"))
    dfs.append(creatVar["df" + str(i)])
    
def out(outfile, df):
    df.to_excel(outfile, index=False)
    
for i in range(len(dfs)):
    thread = threading.Thread(target=out, args=["D:\\python\\test\\df%s.xlsx" % str(i), dfs[i]])
    thread.start()

简单介绍一下工作原理:

  • creatVar = locals()locals() 函数会以字典类型返回当前位置的全部局部变量
  • creatVar["df" + str(i)] = pd.DataFrame(np.random.randn(100, 4), columns=list("ABCD"))这个操作,循环生成多个变量名有规律的变量,变量名是df0~df8,变量的值是随机生成的dataframe数据
  • dfs.append(creatVar["df" + str(i)])把pandas对象(或者说dataframe对象)放入列表,这个操作有点面向对象那么回事儿,这么操作的目的是为了下面更好的进行多线程操作,确实有点诡异,诡异之处在于这里根本无需进行多线程操作,不过我只是个示例而已
  • out(outfile, df)定义一个out函数,里面有两个参数,一个是需要导出的文件路径,一个是需要导出的数据
  • thread = threading.Thread(target=out, args=["D:\\python\\test\\df%s.xlsx" % str(i), dfs[i]])其实这就是多线程操作的核心了,循环创建线程,依次对dfs中的dataframe对象执行out函数操作,target和args分别是函数名和函数参数,然后start线程开始导出数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栀椩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值