2021-10-13(csv文件利用pandas进行拆分)

csv文件利用pandas进行拆分

import os
import pandas as pd

# filename是文件路径,filenum为拆分后的文件行数
# 根据是否有表头执行不同程序,默认有表头的
def Data_split(filename,filenum,header=True):
     if header:
         # 设置每个文件需要有的行数,初始化为1W
         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/filenum+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/filenum+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='E://人工标注.csv'
#num为拆分为的文件个数
Data_split(filename,num,header=True)

你可能感兴趣的:(机器学习杂记,python)