如何快速合并多个CSV / Excel / txt 文件
Posted Tina姐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何快速合并多个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, 我们下篇博客见~
白天工作晚上写文,呕心沥血
觉得写的不错的话最后,求点赞,评论,收藏。或者一键三连
以上是关于如何快速合并多个CSV / Excel / txt 文件的主要内容,如果未能解决你的问题,请参考以下文章
多个EXCEL的CSV文件合并时会把每个文件的表头重复合并到结果文件里,能否让合并结果只有一个表头呢?