python合并不同列序、不同表头的Excel
一、目的:为方便分析统计数据,利用python代码合并不同列序、不同表头的Excel,一个Excel可能含有多个sheet工作簿。
二、代码
import pandas as pd
import os
file_dir = r'C:\Users\Vern kong\Desktop\xiaobanqiao\combine1'
new_filename = file_dir + r'\01combine11.xlsx'
file_list = os.listdir(file_dir)
new_list = []
for file in file_list:
file_path = os.path.join(file_dir,file)
dataframe = pd.read_excel(file_path)
new_list.append(dataframe)
print("11")
df = pd.concat(new_list)
print("2")
df.to_excel(new_filename, index=False)
print("success")
思路:把需要合并的Excel放在同一个文件夹下,指定一个Excel排好表头作为模版,放在默认第一个的位置,而后遍历整个文件夹,利用pandas库中的append语句将多个Excel不同列的内容加在一个列表中,最后将list列表内容以表格的形式输出,放在预先指定的Excel中。
三、成果
运行结果如下图:
可以看到,多个Excel内容已经合并在第一个Excel中。
四、注意事项
1.文件夹命名尽量不要有中文,实测中文命名也可以
2.Excel第一行表头内需要合并的列,需要保证单元格内的字符一致,不一致就会错位,加在最后一列;顺序可以随意
3. 不要有隐藏的行或列,尤其是第一行,否则会整个Excel错位,原理同上
4.类似身份证等长文本,先把其转为字符串的形式,方法多样,其一可以手动批量在前面加中文字符"’“,公式: =”’"&A1,而后智能填充。
5.日期等长文本数字转标准格式,可以采取分列的方式截取前8位,而后勾选日期格式。类似于下图所示:
五、环境搭建
- 这里使用的是python3.9.6,IDLE编辑器,适合初学者,页面简洁,方便易上手。安装成功如下图:
- 配置各种库需要pip命令,若提示既不是内部也不是外部命令,则需要加一个环境变量(高级设置里添加),成功添加之后的pip如下:
- 安装pandas、openpyxl等实现读写、添加Excel功能的库
pandas库:
pip install pandas
已安装成功:
其他库类似操作,提示缺啥安装啥