如何快速合并多个CSV / Excel / txt 文件

最近,一个师姐(医学博士)拿到一批相同表头的 CSV 文件,想要它们合并在一起。不会写代码,只能用 EXCEL 打开文件,手动粘贴复制。

但是,又遇到问题了,她的 EXCEL 非常大,有的一个都有 500MB,电脑根本打不开,所有的合并在一起将近 3G 大小。

电脑直接崩溃!然后…

找到我

接下来分享两招合并文件的方法!


1 通过 cat 合并文件

  • 使用环境: Linux系统。其他系统没有这个命令

cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。

这里的输出设备可以简单理解为 连接后的文件存储地址

  • 语法格式
cat [-AbeEnstTuv] [--help] [--version] fileName
  • 参数说明:
    • -n 或 --number:由 1 开始对所有输出的行数编号。
    • -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
    • -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
    • -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
    • -E 或 --show-ends : 在每行结束处显示 $。

例1

假如有一批 csv 文件如下:

每个 csv 文件内容:

都是一样的表头,可能行数不一样。

我们需要把它合并成一个文件,使用

cat *.csv > all.csv

表示把当前目录下的所有 csv 文件 合并到 all.csv 里面

不管文件有多大,都是秒秒钟的事情!

打开 all.csv 文件看一下合并效果

图上可以看到,cat 也有不足,虽然合并了,但是表头却跑在了右边。

如果你觉得有影响,手动删除就可以。

2 使用 pandas 合并文件

对于无法使用第一种方法的,我们还有解决办法!

from glob import glob
import pandas as pd
files = glob('shili2/*.csv')
for idx, file in enumerate(files):
    df = pd.read_csv(file)
    df.to_csv('all2.csv', mode='a', index=False, header=None)
    # mode='a'表示附加方式写入,文件原有内容不会被清除

查看一下效果

同样的,每个表的表头也会被写入进来。

pandas 没有 cat 的速度快,因为 pandas 会先打开数据,再保存。如果文件过大,会影响打开保存速度。

总结:介绍了两种合并 csv 文件的方法。 但同时也可以扩展到 其他文件的合并,比如 excel, txt等。

文章持续更新,可以关注微信公众号【医学图像人工智能实战营】获取最新动态,一个关注于医学图像处理领域前沿科技的公众号。坚持已实践为主,手把手带你做项目,打比赛,写论文。凡原创文章皆提供理论讲解,实验代码,实验数据。只有实践才能成长的更快,关注我们,一起学习进步~

我是Tina, 我们下篇博客见~

白天工作晚上写文,呕心沥血

觉得写的不错的话最后,求点赞,评论,收藏。或者一键三连
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tina姐

我就看看有没有会打赏我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值