利用python合并csv文件的方式实例

目录
  • 1.用concat方法合并csv
  • 2.glob模块批量合并csv
  • 补充:Python处理(加载、合并)多个csv文件
  • 总结

1.用concat方法合并csv

将两个相同的csv文件进行数据合并,通过pandas的read_csv和to_csv来完成,即采用concat方法:

#加载第三方库
import pandas as pd
import numpy as np
#读取文件
df1 = pd.read_csv("文件-1.csv")
df2 = pd.read_csv("文件-2.csv")
#合并
df = pd.concat([df1,df2])
df.drop_duplicates()  #数据去重
#保存合并后的文件
df.to_csv('文件.csv',encoding = 'utf-8')

也可以增加一列标签,以区别两个合并后的数据:

#加载第三方库
import pandas as pd
import numpy as np
#读取文件
df1 = pd.read_csv("文件-1.csv")
df1["来自文件"] = "文件-1"
df2 = pd.read_csv("文件-2.csv")
df2["来自文件"] = "文件-2"
#合并
df = pd.concat([df1,df2])
df.drop_duplicates()  #数据去重
#保存合并后的文件
df.to_csv('文件.csv',encoding = 'utf-8')

2.glob模块批量合并csv

在利用合并少量文件时,可以使用上面的concat方法。但是遇到大量的相同文件需要合并,此时应该进行批量合并,这可以减少工作量,提高操作效率。

利用Python批量合并csv,这里介绍使用的方法是引入glob模块。

glob模块是最简单的模块之一,内容少,它可以查找符合特定规则的文件路径名。

通过glob方法遍历所有文件,读取数据并追加保存到文件中。

import numpy as np
import pandas as pd
import glob
import re

csv_list = glob.glob('*.csv')
print('共发现%s个CSV文件'% len(csv_list))
print('正在处理............')
for i in csv_list:
    fr = open(i,'r',encoding='utf-8').read()
    with open('文件合集.csv','a',encoding='utf-8') as f:
        f.write(fr)
print('合并完毕!')

以上方法是合并csv文件,要合并excel文件同理。

补充:Python处理(加载、合并)多个csv文件

数据集介绍:本数据集是某化工系统的数据,一共有很多个月的,我这里就拿一个月的数据集,August_data(八月的数据集),一共有31个csv文件。

方法一  for循环遍历+os.listdir(directory_path)+[ for file in tqdm] + os.path.join(path,file)

import pandas as pd
import numpy as np
from tqdm import tqdm
import os

def get_data(path):
    df_list = []
    for file in tqdm(os.listdir(path)):##进度条
        file_path = os.path.join(path, file)
        df = pd.read_csv(file_path)
        df_list.append(df)
    df = pd.concat(df_list)
    return df

cPath = '.\August_data'
# cPath = 'F:/BaiduNetdiskDownload/宁东电厂数据及分析要求/宁东脱销系统优化-上海交大/SCR数据-2020-1/8月数据' #F:/BaiduNetdiskDownload/宁东电厂数据及分析要求/宁东脱销系统优化-上海交大/SCR数据-2020-1/8月数据
# uPath = str(cPath)#uPath = unicode(cPath,'utf-8')
# dirs = os.listdir(TEST_PATH)
# print(dirs)
test_df = get_data(cPath)
print(test_df.head())
# test_df.to_csv(path_or_buf="test.csv",index=False)#保存为CSV文件

方法二   glob方法

#!/usr/bin/env python
# coding=utf-8

import glob
import time
import csv
import pandas as pd
from tqdm import tqdm
# a new file
#open all the CSV file
#遍历文件夹下所有csv文件
TEST_PATH = '.\August_data'
csv_list = glob.glob(f'{TEST_PATH}\*.csv')
print('共有%s个CSV文件'% len(csv_list))
# print (csv_list)

def get_data():
    df_list = []
    for csv_file in csv_list:
        df = pd.read_csv(csv_file)
        df_list.append(df)
    df = pd.concat(df_list)
    print("Loading Oer")
    return df
get_data()

总结

到此这篇关于利用python合并csv文件的文章就介绍到这了,更多相关python合并csv文件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python实现本地csv文件合并

    目录 一.单文件之间合并 二.单个文件夹底下多个文件合并 三.多个文件夹底下多个文件合并 四.多文件夹[函数递归] 总结 本篇的文件合并主要是针对.csv的文件合并. 一.单文件之间合并 首先,要查询目录底下的文件要导入OS.并且我们要将.csv文件以pandas的dataframe底下,因此要导入PANDAS,另外由于我们要遍历目录,因此导入 GLOB: import os import pandas as pd import glob 注: import os的作用:在python环境下对文

  • python:pandas合并csv文件的方法(图书数据集成)

    数据集成:将不同表的数据通过主键进行连接起来,方便对数据进行整体的分析. 两张表:ReaderInformation.csv,ReaderRentRecode.csv ReaderInformation.csv: ReaderRentRecode.csv: pandas读取csv文件,并进行csv文件合并处理: # -*- coding:utf-8 -*- import csv as csv import numpy as np # ------------- # csv读取表格数据 # ---

  • 教你如何把Python CSV 合并到多个sheet工作表

    目标 将多个CSV文件,合并到一个Excel文件中的,多个sheet工作表. 前言 网上大多方法都是将csv直接合并在一起,也不分别创建sheet表. 还有一些解答说CSV不支持合并到多个sheet表. 网上有用宏命令的,我试了,但是只能导入一个sheet表.也有用python的,大多都没什么用. 尽管困难重重,最后终于还是利用pandas库实现了目标. 开始 下面的代码用到了,两个带数据的csv文件.(2019-04-01.csv和2019-04-02.csv) import pandas a

  • 利用python合并csv文件的方式实例

    目录 1.用concat方法合并csv 2.glob模块批量合并csv 补充:Python处理(加载.合并)多个csv文件 总结 1.用concat方法合并csv 将两个相同的csv文件进行数据合并,通过pandas的read_csv和to_csv来完成,即采用concat方法: #加载第三方库 import pandas as pd import numpy as np #读取文件 df1 = pd.read_csv("文件-1.csv") df2 = pd.read_csv(&qu

  • 利用python 读写csv文件

    1.读文件 import csv csv_reader = csv.reader(open("data.file", encoding="utf-8")) for row in csv_reader: print(row) csv_reader把每一行数据转化成了一个list,list中每个元素是一个字符串. 2.写文件 读文件时,我们把csv文件读入列表中,写文件时会把列表中的元素写入到csv文件中. list = ["1", "2&

  • 利用Python读取CSV文件并计算某一列的均值和方差

    近日需要对excel的csv文件进行处理,求取某银行历年股价的均值方差等一系列数据 文件的构成很简单,部分如下所示 总共有接近七千行数据,主要的工作就是将其中的股价数据提取出来,放入一个数组之中,然后利用numpy模块即可求出需要的数据. 这里利用了csv模块来对文件进行处理,最终实现的代码如下: import csv import numpy as np with open('pingan_stock.csv') as csv_file: row = csv.reader(csv_file,

  • Python读取CSV文件并计算某一列的均值和方差

    近日需要对excel的csv文件进行处理,求取某银行历年股价的均值方差等一系列数据 文件的构成很简单,部分如下所示 总共有接近七千行数据,主要的工作就是将其中的股价数据提取出来,放入一个数组之中,然后利用numpy模块即可求出需要的数据. 这里利用了csv模块来对文件进行处理,最终实现的代码如下: import csv import numpy as np with open('pingan_stock.csv') as csv_file: row = csv.reader(csv_file,

  • python 读取.csv文件数据到数组(矩阵)的实例讲解

    利用numpy库 (缺点:有缺失值就无法读取) 读: import numpy my_matrix = numpy.loadtxt(open("1.csv","rb"),delimiter=",",skiprows=0) 写: numpy.savetxt('2.csv', my_matrix, delimiter = ',') 可能遇到的问题: SyntaxError: (unicode error) 'unicodeescape' codec

  • python读写csv文件并增加行列的实例代码

    python读写csv文件并增加行列,具体代码如下所示: # -*- coding: utf-8 -*- """ Created on Thu Aug 17 11:28:17 2017 @author: Shawn Yuen """ import csv d = list(range(38685)) with open('./kinetics_test.csv') as f1: f_csv = csv.DictReader(f1) for i,

  • Python读csv文件去掉一列后再写入新的文件实例

    用了两种方式解决该问题,都是网上现有的解决方案. 场景说明: 有一个数据文件,以文本方式保存,现在有三列user_id,plan_id,mobile_id.目标是得到新文件只有mobile_id,plan_id. 解决方案 方案一:用python的打开文件写文件的方式直接撸一遍数据,for循环内处理数据并写入到新文件. 代码如下: def readwrite1( input_file,output_file): f = open(input_file, 'r') out = open(outpu

  • Python读取csv文件实例解析

    这篇文章主要介绍了Python读取csv文件实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建一个csv文件,命名为data.csv,文本内容如下: root,123456,login successfully root,wrong,wrong password wrong,123456,nonexistent username ,123456,username is null root,,password is null 使用Exc

  • 教你用Python读取CSV文件的5种方式

    目录 第一招:简单的读取 第二招:用nametuple 第三招:用tuple类型转换 第四招:用DictReader 第五招:用字典转换 典型的数据集stocks.csv: 一个股票的数据集,其实就是常见的表格数据.有股票代码,价格,日期,时间,价格变动和成交量.这个数据集其实就是一个表格数据,有自己的头部和身体. 第一招:简单的读取 我们先来看一种简单读取方法,先用csv.reader()函数读取文件的句柄f生成一个csv的句柄,其实就是一个迭代器,我们看一下这个reader的源码: 喂给re

随机推荐