csv数据量很大怎么处理?-----分片处理技巧

当面临大量CSV数据时,一次性全量读取会消耗大量资源。解决方案包括分片读取,如每片500或1000行,以及利用多线程,将数据读取后分散处理。这两种方法能有效提升处理效率。
摘要由CSDN通过智能技术生成

问题:对于一个数据量很大的csv文件进行操作时,一次性全部读取出来再出来可以很耗时间和资源;

解决方法:1、可以考虑分片读取(一片500或1000或者视情况而定 ),按照片数依次处理;

                  2、考虑多线程,将数据一次性读出,然后分多线程同时处理。

举例说明:(1)分片读取文件并处理:

# 分片处理csv文件
def chunk_csv(file1, chunk_size=500):
    """
    输入csv文件、一片包含的数量(可自定义)
    
    """
    chunk = []   #存放500个数据,每个是一行,dict格式
    id_list = []
    time_start = time.time()
    with open(file1, "r", newline="", encoding="utf-8") as csvfile:
        csvreader = csv.reader(csvfile)
        cnt = 0
        fieldnames = ["name1","name2"]   #列名
        for row in csvreader:
            if row[0] == "name1":
                continue
            try:
                tmpdict = {fieldnames[idx]: row[idx] f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值