前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用Python批量合并csv

利用Python批量合并csv

作者头像
披头
发布2020-02-26 14:20:15
5.4K0
发布2020-02-26 14:20:15
举报
文章被收录于专栏:datartisandatartisan

前几天遇到一个工作,需要将几个分别包含几十万行的csv文件的某3列合并成1个csv文件,当时是手工合并的: 1、csv另存为excel; 2、删除不需要的列,仅保留想要的列 3、excel另存为csv 4、最后,手工合并处理好的csv 不得不说,这样操作效率真的很低,尤其是操作几十万行的文件,当时就想利用python代码肯定可以实现,今天利用周末的时间好好研究了一下,终于实现了,操作几十万行的文件只需要一两分钟,比手工高效多了。 实现思路如下: 1、利用os模块获取文件下所有csv文件(表结构相同) 2、用pandas打开第一个文件; 3、循环打开剩下的文件; 4、利用pd.concat拼接不同的df,该方法可以自动去除多余的标题行; 5、挑选需要的列,去重; 6、将结果输出文csv文件; 完整代码如下:

代码语言:javascript
复制
import pandas as pd
import os

path = input('请输入文件夹路径: ')
files = os.listdir(path)
csv_list = []
for f in files:
    if os.path.splitext(f)[1] == '.csv':
        csv_list.append(path + '\\' + f)
    else:
        pass
df = pd.read_csv(csv_list[0], low_memory=False)
for i in range(1, len(csv_list)):
    df_i = pd.read_csv(csv_list[i], low_memory=False)
    pieces = [df[:], df_i[:]]
    df = pd.concat(pieces).drop_duplicates()
df = df.iloc[:, [1, 6, 7]]  #想保留的列的编号。0为起点
df.to_csv(path +'\\csv_merge.csv', index=None, encoding='gbk')
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乐享数据8090 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档