前言
处理数据时,有多个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进行去重处理,将重复的标题删除。文章来源:https://www.toymoban.com/news/detail-511028.html
data.drop_duplicates(subset=['A','B','C'],keep='first',inplace=True)
参数说明如下:
subset:去重的列名,默认为 None。
keep:有三个可选参数,分别是 first、last、False,默认为 first,表示只保留第一次出现的重复项,删除其余重复项,last 表示只保留最后一次出现的重复项,False 则表示删除所有重复项。
inplace:布尔值参数,默认为 False 表示删除重复项后返回一个副本,若为 Ture 则表示直接在原数据上删除重复项。文章来源地址https://www.toymoban.com/news/detail-511028.html
到了这里,关于【工程实践】python 合并多个csv文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!