首页 > 其他 > 详细

将多个数据类型相同的csv文件合并

时间:2019-09-06 20:49:56      阅读:115      评论:0      收藏:0      [点我收藏+]

有时我们会遇到相同类型的数据存在了多个csv文件中,我们需要把这些csv合并为一个文件

如果需要处理的csv文件较多的话,最好先以一定的命名方式按序对csv文件进行命名,方便检索

在重命名之后,我们从指定的路径中寻找包含特定字符的所有csv文件,输出为文件名列表,代码实现如下

函数使用了os库,需要先引用

import os
os.walk(dir)函数会将指定目录下的主目录和所有目录,文件名输出出来,以此为基础可以筛选出需要的文件名
def find_all_csv(dir1,strincsv):
    result=[]
    out=[]
    for maindir, subdir, file_name_list in os.walk(dir1):
        #print("1:",maindir) 
        #print("2:",subdir) 
        #print("3:",file_name_list)  
        for filename in file_name_list:
            apath = os.path.join(maindir, filename)
            result.append(apath)
        for i in range(0,len(result)-1):
            if result[i].find(.csv)!=-1:
                out.append(result[i])
    return out

 在获取需要的csv文件名列表后,把数据从文件读出来,先引用pandas库

import pandas as pd

由于数据类型相同,只要从文件中依次读出来,再写进新的文件就可以了

注意在写入csv文件时不要加行索引,因为多个csv文件的行索引是会出现重复的

def csv_merge(n):   
    list1=[]
    list1=find_all_csv(./data/,a)
    list1.sort()
    list1.sort(key=str.__len__)
    del list1[n:]
    df=pd.read_csv(list1[0])
    df.to_csv(./data/+out.csv,encoding="utf_8",index=False,mode=a)
    del list1[0]
    for li in list1:
        df=pd.read_csv(li)
        df.to_csv(./data/+out.csv,encoding="utf_8",index=False,header=False,mode=a)

 由于数据类型相同,所以在写入同一个文件时并不需要额外的操作,实现很简单。

 

将多个数据类型相同的csv文件合并

原文:https://www.cnblogs.com/btc1996/p/11478018.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!