赞
踩
前言
处理数据时,有多个csv文件需要合并。有两个方法可以实现,第一个是可以通过python提供的pandas模块,借助 pd.concat()实现多个csv文件的合并。第二个是通过linux命令实现。
- 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')
'运行
df = pd.read_csv(Total_file[1],encoding='utf8')
- 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')
将所有的csv文件合并,并命名为all.csv。
cat csvfile/*.csv > all.csv
使用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 则表示直接在原数据上删除重复项。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。