如何快速合并多个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 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何快速合并多个TXT文件?合并多个TXT文件方法步骤

如何把多个CSV文件的数据变成一个EXCEL表格

如何将多个csv按行合并?(不是首尾相接的按列合并)

多个EXCEL的CSV文件合并时会把每个文件的表头重复合并到结果文件里,能否让合并结果只有一个表头呢?

怎么用命令行把多个csv文件合并成一个xls或者xlsx文件

python 如何把多个文件内容合并到以一个文件