python多个文件合并特定条件数据行至一个工作表
本帖最后由 花木成畦手自栽 于 2022-4-29 14:31 编辑工作中,需要汇总门店交上来的多个相同列、格式的EXCEL文档,当然此类程序很多,重点在于只合并某列为特定条件的数据。
例如:A、B、C、D、E五个相同结构EXCEL文件,只要”大小“列为”小“的行数据。
用PYTHON PANDAS写的小程序,也是借鉴于大佬们分享教程,水平有限,大佬勿喷。本着人人为我,我为人人的精神,分享给有需要的小伙伴使用。
import os
import pandas as pd
def merge_data():
path = os.getcwd() + '\\'+'DATA' #获取EXCEL文件目录
file_list = os.listdir(path) #获取EXCEL文件列表
save_path = os.getcwd() + '\\' + 'DATA_合并'+ '\\' + '合并.xlsx' #设置合并后输出目录和文件名
print("----------开始合并----------")
df = pd.read_excel(path + '\\'+ file_list) #读取第一个EXCEL文件
df_temp = df.loc == '值'] #根据某列是为“值”提取成新的DF
print("添加"+file_list,df_temp.shape,"行,合计:",df_temp.shape,"行") #屏幕显示新DF为多少行,合并后共多少行
for i in range(1,len(file_list)): #循环第2个~最后一个EXCEL文件
df1 = pd.read_excel(path + '\\' + file_list)#读取EXCEL文件
df2 = df1.loc == '否'] #根据某列是为“值”提取成新的DF
df_temp = pd.concat() #合并2个DF
print("添加"+file_list,df2.shape,"行,合计:",df_temp.shape,"行") #屏幕显示DF2为多少行,合并后共多少行
df_temp.to_excel(save_path) #按路径保存文件
print("----------合并完成----------")
if __name__=='__main__':
merge_data()
直接用import csv还少导入一个库 zhaofucheng 发表于 2022-4-29 15:19
直接用import csv还少导入一个库
没懂,CSV库什么作用? xlsxwriter.exceptions.FileCreateError: No such file or directory: 'D:\\pandaspython多个文件合并特定条件数据行至一个工作表\\
报错了,怎么回事哈? 代码有问题,运行不了的 1e3e 发表于 2023-3-28 22:15
代码有问题,运行不了的
将'\\'改成'\'试试,可能是版本问题 花木成畦手自栽 发表于 2023-3-29 10:30
将'\\'改成'\'试试,可能是版本问题
save_path = os.getcwd() + '\' + 'DATA_合并' + '\' + '合并.xlsx'# 设置合并后输出目录和文件名
^
SyntaxError: invalid syntax 花木成畦手自栽 发表于 2023-3-29 10:30
将'\\'改成'\'试试,可能是版本问题
搞好了,谢谢你的分享
页:
[1]