12、pandas将多个具有相同列名的文件合并成一个文件

文件的合并这里要用到os库的walk和path功能。

例如我们现在有这几个文件,现在想要将它们合并(纵向合并)成一个文件要怎么处理呢?

12、pandas将多个具有相同列名的文件合并成一个文件_第1张图片
文件名
12、pandas将多个具有相同列名的文件合并成一个文件_第2张图片
文件的格式都是这样的

首先,我们要引入pandas和os库,并定义好文件夹的路径:

定义存放文件的路径

其次,我们要新建一个空的DataFrame,列名设置为空就会默认为原始表格的列名。

新建一个空的 DataFrame

然后利用os库的walk功能遍历文件夹里的所有文件,并读取文件名字。

os.path.join能够将文件夹的路径和文件名字合并成每个文件的完整路径,然后将每个文件读取,在与空的DataFrame合并。

遍历所有文件

这样子就可以把文件夹内所有的文件进行合并了。

12、pandas将多个具有相同列名的文件合并成一个文件_第3张图片
合并后的文件

以上操作有几点需要注意的:

1、以上读取合并的是CSV文件,所以在文件路径中不能存在中文字符,否则会报错;

2、如果读取Excel文件的话,路径中可以存在中文字符不会受到影响;

3、在一个文件夹内只能有一种格式的文件,如果有多种格式的文件也会报错;

4、读取文件后出现乱码可以指定编码格式;

5、读取文件里如果有子文件夹,那么子文件夹的文件也会被一并的读取并合并。

以上说的是纵向合并,那么如果要进行横向合并,又要怎么操作呢?

提示:横向合并只需要将append替换成concat就可以了。

12、pandas将多个具有相同列名的文件合并成一个文件_第4张图片
使用concat进行横向合并

你可能感兴趣的:(12、pandas将多个具有相同列名的文件合并成一个文件)