精华内容
下载资源
问答
  • 主要介绍了Python拆分大型CSV文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 这篇文章主要介绍了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

    展开全文
  • I have a csv file of about 5000 rows in python i want to split it into five files.I wrote a code for it but it is not workingimport codecsimport csvNO_OF_LINES_PER_FILE = 1000def again(count_file_head...

    I have a csv file of about 5000 rows in python i want to split it into five files.

    I wrote a code for it but it is not working

    import codecs

    import csv

    NO_OF_LINES_PER_FILE = 1000

    def again(count_file_header,count):

    f3 = open('write_'+count_file_header+'.csv', 'at')

    with open('import_1458922827.csv', 'rb') as csvfile:

    candidate_info_reader = csv.reader(csvfile, delimiter=',', quoting=csv.QUOTE_ALL)

    co = 0

    for row in candidate_info_reader:

    co = co + 1

    count = count + 1

    if count <= count:

    pass

    elif count >= NO_OF_LINES_PER_FILE:

    count_file_header = count + NO_OF_LINES_PER_FILE

    again(count_file_header,count)

    else:

    writer = csv.writer(f3,delimiter = ',', lineterminator='\n',quoting=csv.QUOTE_ALL)

    writer.writerow(row)

    def read_write():

    f3 = open('write_'+NO_OF_LINES_PER_FILE+'.csv', 'at')

    with open('import_1458922827.csv', 'rb') as csvfile:

    candidate_info_reader = csv.reader(csvfile, delimiter=',', quoting=csv.QUOTE_ALL)

    count = 0

    for row in candidate_info_reader:

    count = count + 1

    if count >= NO_OF_LINES_PER_FILE:

    count_file_header = count + NO_OF_LINES_PER_FILE

    again(count_file_header,count)

    else:

    writer = csv.writer(f3,delimiter = ',', lineterminator='\n',quoting=csv.QUOTE_ALL)

    writer.writerow(row)

    read_write()

    The above code creates many fileswith empty content.

    How to split one files into five csv files?

    解决方案

    I suggest you not inventing a wheel. There is existing solution. Source here

    import os

    def split(filehandler, delimiter=',', row_limit=1000,

    output_name_template='output_%s.csv', output_path='.', keep_headers=True):

    import csv

    reader = csv.reader(filehandler, delimiter=delimiter)

    current_piece = 1

    current_out_path = os.path.join(

    output_path,

    output_name_template % current_piece

    )

    current_out_writer = csv.writer(open(current_out_path, 'w'), delimiter=delimiter)

    current_limit = row_limit

    if keep_headers:

    headers = reader.next()

    current_out_writer.writerow(headers)

    for i, row in enumerate(reader):

    if i + 1 > current_limit:

    current_piece += 1

    current_limit = row_limit * current_piece

    current_out_path = os.path.join(

    output_path,

    output_name_template % current_piece

    )

    current_out_writer = csv.writer(open(current_out_path, 'w'), delimiter=delimiter)

    if keep_headers:

    current_out_writer.writerow(headers)

    current_out_writer.writerow(row)

    Use it like:

    split(open('/your/pat/input.csv', 'r'));

    展开全文
  • 我最近的挑战是采用一个非常大的csv文件(10gb)并根据每行中特定变量的值将其拆分为许多较小的文件.例如,文件可能如下所示:Category,Title,Sales"Books","Harry Potter",1441556"Books","Lord of the Rings",...

    我是一名

    Python初学者,并制作了一些基本的脚本.我最近的挑战是采用一个非常大的csv文件(10gb)并根据每行中特定变量的值将其拆分为许多较小的文件.

    例如,文件可能如下所示:

    Category,Title,Sales

    "Books","Harry Potter",1441556

    "Books","Lord of the Rings",14251154

    "Series", "Breaking Bad",6246234

    "Books","The Alchemist",12562166

    "Movie","Inception",1573437

    我想将文件拆分为单独的文件:

    Books.csv,Series.csv,Movie.csv

    实际上将有数百个类别,并且它们不会被分类.在这种情况下,它们位于第一列,但将来它们可能不是.

    我在网上找到了一些解决方案,但在Python中没有.有一个非常简单的AWK命令可以在一行中执行此操作,但我无法在工作中访问AWK.

    我编写了以下代码,但我认为这可能效率很低.任何人都可以建议如何加快速度?

    import csv

    #Creates empty set - this will be used to store the values that have already been used

    filelist = set()

    #Opens the large csv file in "read" mode

    with open('//directory/largefile', 'r') as csvfile:

    #Read the first row of the large file and store the whole row as a string (headerstring)

    read_rows = csv.reader(csvfile)

    headerrow = next(read_rows)

    headerstring=','.join(headerrow)

    for row in read_rows:

    #Store the whole row as a string (rowstring)

    rowstring=','.join(row)

    #Defines filename as the first entry in the row - This could be made dynamic so that the user inputs a column name to use

    filename = (row[0])

    #This basically makes sure it is not looking at the header row.

    if filename != "Category":

    #If the filename is not in the filelist set, add it to the list and create new csv file with header row.

    if filename not in filelist:

    filelist.add(filename)

    with open('//directory/subfiles/' +str(filename)+'.csv','a') as f:

    f.write(headerstring)

    f.write("\n")

    f.close()

    #If the filename is in the filelist set, append the current row to the existing csv file.

    else:

    with open('//directory/subfiles/' +str(filename)+'.csv','a') as f:

    f.write(rowstring)

    f.write("\n")

    f.close()

    谢谢!

    展开全文
  • 利用pythonCSV文件分组并拆分文件

    万次阅读 2018-07-03 17:30:07
    脚本背景: 提取了不同类别下的购买手机号码,由于数据量巨大,需要对数据进行分组,得到不同类别下的手机号码,同时自动拆分文件,按照一个特定类别输出文件。import pandas as pd#read data from csv df=pd.read_...
    脚本背景: 提取了不同类别下的购买手机号码,由于数据量巨大,需要对数据进行分组,得到不同类别下的手机号码,同时自动拆分文件,按照一个特定类别输出文件。
    import pandas as pd
    #read data from csv
    df=pd.read_csv('C:\\Users\\Administrator\\Documents\\haomabao.csv',sep=',',engine='python',header=[1,2])
    #get the columns of df
    df.columns=['telephone','cc']
    c=list(df.columns)
    
    print(c[1:2])
    grouped=df.groupby(c[1:2]) #according different categories to group by the df 
    #delete duplicated data 
    ind_frame=df.drop_duplicates(subset=['cc'], keep='first')
    print(ind_frame.cc) 
    print(range(len(ind_frame)))
    for name in ind_frame.cc:
        print(name)
        df[df.cc==name].to_csv("F:\\result\\_"+u"%s" %name+".csv")
    最后可以得到不同类别下的号码,并且每一个类别对应一个类别名称的CSV文件。此方法可举一反三应用在别的数据上。
    展开全文
  • I'm a Python beginner, and have made a few basic scripts. My latest challenge is to take a very large csv file (10gb+) and split it into a number of smaller files, based on the value of a particular v...
  • I'm a Python beginner, and have made a few basic scripts. My latest challenge is to take a very large csv file (10gb+) and split it into a number of smaller files, based on the value of a particular v...
  • python拆分大数据量csv文件

    千次阅读 2020-07-29 19:11:48
    单个数据量多的csv文件转化多个单个数据量小csv文件 转化前的大数据量的csv文件: 转化后的多个小数据量的csv文件: 本代码利用pandas库读取csv文件、写入文件。再利用列表进行分割匹配操作(该csv文件target为...
  • I have a series of large CSV files "basename.csv" like:B1,3,5,6B2,2,1,5B3,1,9,0C1,4,7,9C2,1,9,3C3,8,5,2I would like to split them into different files like:basename_B.csvB1,3,5,6B2,2,1,5B3,1,9,0basena...
  • 码农公社 210.net.cn 210= 1024 10月24日一个重要的节日--码农(程序员)节一个2.xG 大小的 csv文件,文件太大,不宜一次性读入内存,可以使用open迭代器。with open(filename,'r') as file# 按行读取for line in ...
  • 拆分CSV文件.zip

    2019-07-26 16:16:35
    快速将一个CSV文件拆分为多个CSV文件,需要自定义输出。
  • python切分csv文件

    2021-06-29 19:55:28
    ## python按列将一个大csv文件划分为多个小csv 有时候从数据库导出的文件会非常大,而且各种类型的数据会混杂在一起,在进行数据分析时会比较麻烦,我们需要将大文件按某种规律分为几个小文件,便于处理,这里用到了...
  • I have a .csv file that contains my data. I would like to do Logistic Regression, Naive Bayes and Decision Trees. I already know how to implement these.However, my teacher wants me to split the data i...
  • csv文件拆分成多个,可自定义每个csv文件的容量
  • Python处理CSV文件(一)

    千次阅读 2021-02-27 23:40:14
    CSV 文件 CSV(comma-separated value,逗号分隔值)文件格式是一种非常简单的数据存储与分享方式。CSV 文件将数据表格存储为纯文本,表格(或电子表格)中的每个单元格都是一个数值或字符串。与 Excel 文件相比,...
  • Comma Separated Values,简称CSV,它是一种以逗号...今天,我将给大家分享在Python中如何操作CSV文件。一、数据源首先,我们来看看本次操作的数据源,图1 CSV文件是在Excel中打开的,图2 CSV文件是在Notepad++中...
  • 小白只知道用pandas,但不知道具体操作,求大神帮忙 ![图片说明](https://img-ask.csdn.net/upload/201910/20/1571574593_742371.png)
  • 很久没有更新博客了,最近handle了一个项目需要处理大量csv文件,需求是将csv文件中某单个列的多个values(该多个vaules以回车分隔)拆分成多个相同列的单个value,由于python在处理脚本先天比shell更有优势,这里把自己的...
  • 项目中有一个数据文件数量庞大,一个文件中按照年月日分成几十万条数据,想试试能不能用python把它简单切割一下,按照日期分类切成小的csv文件。 于是在网上找了很多资料,结合自己的一些修改,整理了一下,方便...
  • dir=r"C:\Users\Administrator\Desktop\结果\CheckResult_200_数据业务用户感知提升模板_中移_20210413_需要核查工具20210321以后版本使用_2_20210427164623.csv" result_1=pd.read_csv(dir,encoding="gbk") ...
  • 需求:网上下载的csv文件,包含的几十万的数据,想要根据MMSI的值分为不同的csv文件 主要步骤: read_csv:读取存放所有数据的csv文件 drop_duplicates:去掉重复的数据(默认为所有特征值匹配才相同) groupby:...
  • python处理csv格式文件   在各种平台上获取数据时,我们常常获得的是csv格式的文件。csv格式是一种逗号分隔值的文件格式,它并不是非常reader-friendly。...分析csv文件头 为了在python中处理cs
  • 在机器学习中,有时会需要将数据集的某个特征或多个特征提取出来,以便进行训练或对比,下面记录一种拆分csv文件中列(一般为特征)的方法。 ''' 以下代码实现功能包括: 1.将'train.csv'文件中的'Id'、'SalePrice'...
  • #ecoding=utf-8 import os ...# 2019/9/8 将大的csv文件拆分多个小的csv文件 def mkSubFile(lines, head, srcName, sub): [des_filename, extname] = os.path.splitext(srcName) filename = des_...
  • 利用pythoncsv文件进行分割

    万次阅读 2018-10-01 07:59:16
    有个任务,就是将一个大的csv分割为几个小的csv,当然是的包含表头的。 于是,我想到了类似于,用双指针来做。 import csv import os path = '/Users/mac/Desktop/186_3.csv' with open(path, 'r', newline='')...
  • 拆分csv文件

    千次阅读 2019-12-26 11:00:47
    /usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Thu Dec 26 10:43:59 2019 @author: xinran """ path='/Users/xinran/01 网易云课堂/01 大鹏/考核/考核07/' file_name = 'blibli.csv' with open...
  • python按比例拆分csv数据

    千次阅读 2020-05-29 11:17:26
    1.引入所需包 ...train_data = pd.read_csv("messages.csv") 3.进行分割 # 拆分数据 print("拆分数据中。。。") split_ratio = 0.75 # 75%的训练数据 seed = 5 # 随机种子 # 分割训练集与测试

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,825
精华内容 2,730
关键字:

python拆分csv文件

python 订阅