精华内容
下载资源
问答
  • 主要介绍了Python拆分大型CSV文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 大型csv文件排序问题

    千次阅读 2019-10-16 11:35:25
    大型csv文件进行排序惨痛经历1、使用pandas中的sort_value()方法方法 惨痛经历 1、使用pandas中的sort_value()方法 网上有说使用pandas库的sort_value()方法根据某一列进行排序,但是因为我的数据中大部分是...

    背景

    爬取了1个G左右的json数据,是全国2000个左右城市和地区5-8年以来的每一天的天气信息,然后把它处理成csv文件,就像这样:
    在这里插入图片描述处理之后大概有300多MB:
    在这里插入图片描述
    因为是多线程爬的,所以里面的数据并不是按照一个城市一个城市排列,日期也不是一天一天连续的。为了进一步处理分析数据,需要按照城市分割成2000个左右的CSV文件,为了提高效率,就需要先进行一次排序。

    惨痛经历

    1、使用excel打开

    别想了,那自然是打不开的(至少我的电脑打不开),而且可以预计,就算打开也会十分的卡。

    2、使用pandas中的sort_value()方法

    网上有说使用pandas库的sort_value()方法根据某一列进行排序,但是因为我的数据中大部分是中文数据,所以测试的效果很差,基本相当于没排。但是如果是英文数据的话,这个方法还是不错的。
    具体代码(部分):

    import pandas as ps
    df = ps.read_csv('new.csv',encoding='gb2312')
    df = df.sort_values('city')
    df.to_csv('output.csv',encoding='gb2312')
    

    解决方法

    使用工具EmEditor
    网上有破解版的可以使用,自行搜索下载。
    界面
    在这里插入图片描述操作
    1、打开csv文件。因为是中文界面,就不用多说了。
    2、排序。排序的功能栏在这里:
    在这里插入图片描述选中一列后,就可以升序或者降序对整个文件排序了,因为文件很大,排序大概花了10秒钟,而且亲测对中文的排序效果很好,完全没有问题。
    在这里插入图片描述
    3、接下来是保存
    这一点我觉得是最坑的,因为涉及到了中文编码的问题,千万千万不要点保存或者ctrl+s
    如果直接保存,当时什么问题也没有,还是能正常显示,但是如果你把它关掉重新打开,就会出现编码问题,你的中文部分会全部乱码而且无法修复,如果你的原始文件没有备份,那就惨了。这个问题只出现在原始文件较大的情况,我测试了小文件,好像没有这个问题。但是大文件是有这个问题的,而且每次都会出现,不是偶然现象。
    这是这个软件的一个bug,所以强烈建议处理数据之前,先把原始数据备份一遍。

    正确的姿势是:
    点击另存为,然后会这样:
    在这里插入图片描述这里的编码是默认的GB2312,因为我写这个CSV的时候用的编码就是GB2312,如果没有默认,要选择这个编码方式,然后再另存一份。这样再打开才不会出现乱码问题。

    end

    这是我的第一篇博客,不足之处希望大家指正。

    展开全文
  • 由于大型 CSV 数据通常存储在列或行中,因此我们可以逐列或逐行读取 CSV 文件。 csvscan.m 是一个简单的草稿,但适用于无限大小的 csv 文件,如果每列数据不超过内存限制。 就我而言,我在 34 个分隔的 mat 文件中...
  •  108是生成的一个小的csv文件,如果想要生成大型的csv文件,那么以上方式将有可能会发生超时的情况(服务器要生成一个大型csv文件,需要的时间可能会超过浏览器默认的超时时间)。这时候我们可以借助另外一个类,...

    生成大的CSV文件:

      108是生成的一个小的csv文件,如果想要生成大型的csv文件,那么以上方式将有可能会发生超时的情况(服务器要生成一个大型csv文件,需要的时间可能会超过浏览器默认的超时时间)。这时候我们可以借助另外一个类,叫做StreamingHttpResponse对象,这个对象是将响应的数据作为一个流返回给客户端,而不是作为一个整体返回。示例代码如下:from django.http import HttpResponse, JsonResponse, StreamingHttpResponse

    from django.template import loader, context
    import json, csv
    
    # Create your views here.
    
    def large_csv(request):
        resp = StreamingHttpResponse(content_type='text/csv')
        resp['Content-Disposition'] = "attachment;filename='large.csv'"
        rows = ("Row {}, {}\n".format(row, row) for row in range(1,100000))
        resp.streaming_content = rows
    
        # 对比上下两种方法
    # resp = HttpResponse(content_type='text/csv') # resp['Content-Disposition'] = "attachment;filename='largs.csv'" # mywrite = csv.writer(resp) # for i in range(1,1000000): # mywrite.writerow([i, i*2]) return resp

      这里我们构建了一个非常大的数据集rows,并且将其变成一个迭代器。然后因为StreamingHttpResponse的第一个参数只能是一个生成器,因此我们使用圆括号(writer.writerow(row) for row in rows),并且因为我们要写的文件是csv格式的文件,因此需要调用writer.writerowrow变成一个csv格式的字符串。而调用writer.writerow又需要一个中间的容器,因此这里我们定义了一个非常简单的类Echo,这个类只实现一个write方法,以后在执行csv.writer(pseudo_buffer)的时候,就会调用Echo.writer方法。

    注意:StreamingHttpResponse会启动一个进程来和客户端保持长连接,所以会很消耗资源。所以如果不是特殊要求,尽量少用这种方法。

    关于StreamingHttpResponse:

    这个类是专门用来处理流数据的。使得在处理一些大型文件的时候,不会因为服务器处理时间过长而到时连接超时。这个类不是继承自HttpResponse,并且跟HttpResponse对比有以下几点区别:

    • 这个类没有属性content,相反是streaming_content
    • 这个类的streaming_content必须是一个可以迭代的对象。
    • 这个类没有write方法,如果给这个类的对象写入数据将会报错。

    注意:StreamingHttpResponse会启动一个进程来和客户端保持长连接,所以会很消耗资源。所以如果不是特殊要求,尽量少用这种方法。

     

    # 对比上下两种方法
    # resp = HttpResponse(content_type='text/csv')
    # resp['Content-Disposition'] = "attachment;filename='largs.csv'"
    # mywrite = csv.writer(resp)
    # for i in range(1,1000000):
    # mywrite.writerow([i, i*2])

    转载于:https://www.cnblogs.com/zheng-weimin/p/10415956.html

    展开全文
  • 这篇文章主要介绍了Python拆分大型CSV文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下#!/usr/bin/env python3# -*- coding:utf-8 -*-# @FileName :...

    这篇文章主要介绍了Python拆分大型CSV文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    #!/usr/bin/env python3

    # -*- coding:utf-8 -*-

    # @FileName :Test.py

    # @Software PyCharm

    import os

    import pandas as pd

    # filename为文件路径,file_num为拆分后的文件行数

    # 根据是否有表头执行不同程序,默认有表头的

    def Data_split(filename,file_num,header=True):

    if header:

    # 设置每个文件需要有的行数,初始化为1000W

    chunksize=10000

    data1=pd.read_table(filename,chunksize=chunksize,sep=',',encoding='gbk')

    # print(data1)

    # num表示总行数

    num=0

    for chunk in data1:

    num+=len(chunk)

    # print(num)

    # chunksize表示每个文件需要分配到的行数

    chunksize=round(num/file_num+1)

    # print(chunksize)

    # 分离文件名与扩展名os.path.split(filename)

    head,tail=os.path.split(filename)

    data2=pd.read_table(filename,chunksize=chunksize,sep=',',encoding='gbk')

    i=0

    for chunk in data2:

    chunk.to_csv('{0}_{1}{2}'.format(head,i,tail),header=None,index=False)

    print('保存第{0}个数据'.format(i))

    i+=1

    else:

    # 获得每个文件需要的行数

    chunksize=10000

    data1=pd.read_table(filename,chunksize=chunksize,header=None,sep=',')

    num=0

    for chunk in data1:

    num+=len(chunk)

    chunksize=round(num/file_num+1)

    head,tail=os.path.split(filename)

    data2=pd.read_table(filename,chunksize=chunksize,header=None,sep=',')

    i=0

    for chunk in data2:

    chunk.to_csv('{0}_{1}{2}'.foemat(head,i,tail),header=None,index=False)

    print('保存第{0}个数据'.format(i))

    i+=1

    filename='文件路径'

    #num为拆分为的文件个数

    Data_split(filename,num,header=True)

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

    本文标题: Python拆分大型CSV文件代码实例

    本文地址: http://www.cppcns.com/jiaoben/python/277747.html

    展开全文
  • 利用pandas的chunksize分块处理大型csv文件 当读取超大的csv文件时,可能一次性不能全部放入内存中,从而无法加载,所以需要分块处理。 在read_csv中有个参数chunksize,通过指定一个chunksize分块大小来读取文件,...

    利用pandas的chunksize分块处理大型csv文件

    当读取超大的csv文件时,可能一次性不能全部放入内存中,从而无法加载,所以需要分块处理。

    在read_csv中有个参数chunksize,通过指定一个chunksize分块大小来读取文件,返回的是一个可迭代的对象TextFileReader

    import pandas as pd
    ''' chunksize:每一块有100行数据  iterator:可迭代对象 '''
    reader = pd.read_csv('all_test.csv',chunksize=100,iterator=True)
    count = 0;
    # 可以使用for循环 对每一块的数据进行操作
    for chunk in reader:
        '''
        可以对块中的某列数据进行操作 将每个chunk里面的时间戳变换成时间格式
        chunk['colunmn_name'] = pd.to_datetime(chunk['colunmn_name'],unit='s',origin=pd.Timestamp('2018-07-01')))
        
        可以对每一行数据进行操作
        for i in range(len(chunk)):
        '''
        count += 1
        if count ==1:
          	# 去除索引index
            chunk.to_csv('test.csv',index = False)
        elif count>1 and count<100:
          	# 去除索引index 和 列名header 以追加的方式添加mode
            chunk.to_csv('test.csv',index = False, mode = 'a',header = False)
        else:
            break
    pd.read_csv('test.csv')
    
    # 此外由于是可迭代对象 可取出前5行的数据观察
    chunks = pd.read_csv('train.csv',iterator = True)
    chunk = chunks.get_chunk(5)
    
    
    展开全文
  • <p>We downloaded .osm file from openstreetmaps gis data and converted it into .csv file through osmconvert.exe. The csv file is of 3.5 GB of size. We tried importing it to the database through heidi...
  • I want to upload large CSV document into mysql database can anyone help me out, the table consist of 10 fields but i want to upload into only 5 fields of the table without a heading. I want this done ...
  • 我有一个非常大的csv文件,我无法在内存中完整加载.所以我想逐个阅读,将其转换为numpy数组,然后再进行一些处理.但问题是它是一个普通的读者,我无法在csvReader中找到任何指定大小的选项.此外,因为我想将行转换为numpy...
  • Python 从大型csv文件中提取感兴趣的行 帮妹子处理一个2.xG 大小的 csv文件,文件太大,不宜一次性读入内存,可以使用open迭代器。 with open(filename,‘r’) as file # 按行读取 for line in file: process 或者...
  • 如何读取大型CSV文件

    2018-04-02 19:41:02
    <pre><code>reader := csv.NewReader(csvFile) reader.FieldsPerRecord = -1 for { // read just one record at a time record, err := reader.Read() if err == io.EOF { break } else if err != nil { ...
  • 通常,您希望将数据从CSV文件加载到数据库中。 通常,这根本不是问题,但是在某些情况下会出现性能问题,尤其是当您要加载大量数据时。 在这种情况下,“大量”是指CSV文件,具有500MB至1GB的数据和数百万行。 在...
  • 帮妹子处理一个2.xG 大小的 csv文件,文件太大,不宜一次性读入内存,可以使用open迭代器。with open(filename,'r') as file# 按行读取for line in file:process或者简单点for line in open('myfile.txt','r'):pass...
  • 分割CSV 安装 python setup.py 安装 用法 splitcsv [文件名] [目标目录] [perFile=1000] 例子 splitcsv myLargeCsvFile.csv 测试 2000
  • 大型CSV文件的读取方法 按组合条件筛选方法 dataframe导出为csv文件的方法 步骤 1. 读取CSV文件 reader = pd.read_csv('C:/Users/Administrator/Desktop/thesis/NGSIM/NGSIM/after_utf-8.csv', error_bad_lines=...
  • I need to write a Python generator that yields tuples (X, Y) coming from two different CSV files.It should receive a batch size on init, read line after line from the two CSVs, yield a tuple (X, Y) fo...
  • I need to write a Python generator that yields tuples (X, Y) coming from two different CSV files.It should receive a batch size on init, read line after line from the two CSVs, yield a tuple (X, Y) fo...
  • 1)reader(csvfile[, dialect='excel'][, fmtparam]),主要用于CSV 文件的读取,返回一个 reader 对象用于在CSV 文件内容上进行行迭代。 参数: csvfile,需要是支持迭代(Iterator)的对象,...
  • Mysql 导入大型csv文件

    2019-09-10 08:47:00
    前段时间下载下来的专利数据要进行处理,奈何数据...load data infile 'D:\patents\Algeria.csv' into table Algeria fields terminated by ',' optionally enclosed by '"' escaped by ',' lines terminated b...
  • I need to write a Python generator that yields tuples (X, Y) coming from two different CSV files.It should receive a batch size on init, read line after line from the two CSVs, yield a tuple (X, Y) fo...
  • CSV(Comma Separated ...因此很多语言都提供了对CSV文件处理的模块。Python也不例外,其模块csv提供了一系列与CSV处理相关的 API。我们先来看一下其中几个常见的API:1.reader(csvfile[,dialect='excel'][, fmtpa...
  • 让我们看一下使用Ruby处理CSV文件的几种方法,并测量内存消耗和速度性能。 Prepare CSV data sample Before we start, let's prepare a CSV filedata.csvwith 1 million rows (~ 75 MB) to use in tests....
  • <p>I'm trying to find the best efficient way to read a csv file (~1M row). Each row contain a HTTP link to an image which I need to download.</p> <p>This is my current code using worker pools: <pre>...
  • pandas使用chunksize分块处理大型csv文件

    万次阅读 多人点赞 2019-03-15 23:58:40
    最近接手一个任务,从一个有40亿行数据的csv文件中抽取出满足条件的某些行的数据,40亿行。。。如果直接使用pandas的read_csv()方法去读取这个csv文件,那服务器的内存是会吃不消的,所以就非常有必要使用chunksize...
  • 我有一个非常大的csv文件,我无法在内存中完整加载.所以我想逐个阅读,将其转换为numpy数组,然后再进行一些处理.但问题是它是一个普通的读者,我无法在csvReader中找到任何指定大小的选项.此外,因为我想将行转换为numpy...
  • 我有一个非常大的csv文件,我无法在内存中完整加载.所以我想逐个阅读,将其转换为numpy数组,然后再进行一些处理.但问题是它是一个普通的读者,我无法在csvReader中找到任何指定大小的选项.此外,因为我想将行转换为numpy...
  • 数据处理:用pandas处理大型csv文件

    万次阅读 2018-07-11 14:09:04
    在训练机器学习模型的过程中,源数据常常不符合我们的要求。...我们在处理csv文件时,经常使用pandas,可以帮助处理较大的csv文件。 pandas 中处理CSV 文件的函数主要为read_csv() 和to_csv()这两个,其中r...
  • stream-csv-as-json是node.js流组件的微型库,具有最小的依赖性,可用于创建面向处理大型CSV文件的自定义数据处理器,同时所需的内存占用最少。 它可以解析远远超出可用内存的 CSV 文件。 甚至单个原始数据项也可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,197
精华内容 4,478
关键字:

大型csv文件