前言

        处理数据时,有多个csv文件需要合并。有两个方法可以实现,第一个是可以通过python提供的pandas模块,借助 pd.concat()实现多个csv文件的合并。第二个是通过linux命令实现。

1.pandas模块实现

1-1 获得全部csv文件路径

import pandas as pd
import os
#遍历获得文件
def FilesPath(path):
    '''
    path: 目录文件夹地址
    返回值:列表,pdf文件全路径
    '''
    filePaths = [] # 存储目录下的所有文件名,含路径
    for root,dirs,files in os.walk(path):
        for file in files:
            filePaths.append(os.path.join(root,file))
    return filePaths
#获得所以文件路径
Total_file = FilesPath('/home/风机叶片开裂故障预警数据集/train')

1-2  查看数据

df = pd.read_csv(Total_file[1],encoding='utf8')

1-3 合并数据

data = pd.DataFrame()
for file_path in (Total_file[1:10]):
    df = pd.read_csv(file_path,encoding='utf8')
    data = pd.concat([data,df])

# 重新设置索引 从0开始
data.reset_index(drop=True, inplace=True)
#将合并的data存储
data.to_csv(Total_data_save_path,index = False,encoding='utf8')

2. linux命令实现

2-1 合并数据

        将所有的csv文件合并,并命名为all.csv。

cat csvfile/*.csv > all.csv

2-2 去除标题

        使用cat命令对csv文件合并时,会将每个csv文件的标题一起添加到新文件中,所以需要对all.csv进行去重处理,将重复的标题删除。

data.drop_duplicates(subset=['A','B','C'],keep='first',inplace=True)

参数说明如下:
subset:去重的列名,默认为 None。
keep:有三个可选参数,分别是 first、last、False,默认为 first,表示只保留第一次出现的重复项,删除其余重复项,last 表示只保留最后一次出现的重复项,False 则表示删除所有重复项。
inplace:布尔值参数,默认为 False 表示删除重复项后返回一个副本,若为 Ture 则表示直接在原数据上删除重复项。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐