Pandas(杂):拼接多张表为一张表concat

将文件夹下的所有相同格式的文本文件csv/txt/xlsx等,==合并或者拼接==为一张表的代码,代码很简单,因为经常用到所以放在这里以便用的时候直接粘贴复用:

函数具体说明可以查看文档 pd.concatdf.drop_duplicates

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# -*- coding: utf-8 -*-
import pandas as pd
from glob import glob

# 输入参数
indir = r""
outfile = "....csv"
filetype = "csv"
# pandas文件遍历及合并
files = glob(indir+"\\*."+filetype)
tables = [] # 确保文件总大小不会溢出内存,否则需分组处理
for file in files:
df = pd.read_csv(file)
tables.append(df)
# 表格拼接及写出,axis=0表示按行拼接
result = pd.concat(tables,axis=0)
# result.drop_duplicates(subset=["fid"], keep='first', inplace=True) #去重复列
result.to_csv(outfile,encoding = 'utf-8',index=False)
# 导出可以用excel打开的文件
result.to_csv(outfile,encoding = 'utf-8-sig',index=False)
result.to_excel(outfile,encoding = 'utf-8',index=False)
# 其他导出选项
result.to_csv(outfile,encoding = 'utf-8',index=False, sep="\t")