Python中csv文件合并的操作和方法是什么
Admin 2022-07-25 群英技术资讯 1270 次浏览
很多朋友都对“Python中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')
在利用合并少量文件时,可以使用上面的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文件同理。
数据集介绍:本数据集是某化工系统的数据,一共有很多个月的,我这里就拿一个月的数据集,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()
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
Tkinter是使用python进行窗口视窗设计的模块,那么Python的tkinter如何使用呢?下面小编给大家分享一个实例,带大家快速了解Tkinter的使用。
程序设计的好与坏,早在我们青葱岁月时就接触过了,只是那是并不知道这竟如此重要。能够立即改善程序设计、写出“好”代码的知识有以下几点
这篇文章主要介绍了Python中else的用法总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要介绍了Python利用numpy实现三层神经网络的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这篇文章主要介绍了Python 利用for、while 实现循环最快方式,文章主要对for、while 等速度对比详细介绍,具有一定的参考价值 ,需要的小伙伴可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008