【工程实践】python 合并多个csv文件

前言

        处理数据时,有多个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 则表示直接在原数据上删除重复项。

  • 5
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值