excel处置4000行数据卡_Python处理Excel文档(02)

技术

质量

管理

杂谈

导读

Microsoft Excel几乎无处不在,使用Excel既可以保存数据,还可以跟踪数据活动趋势。人们使用Excel的方式五花八门,难以计数。Excel已经成为商业活动中不可或缺的工具。

Excel本身不仅可以实现数据电子化,还可以通过VBA来实现数据自动化。随着Python语言的兴起,数据自动化显得更加方便和快捷。使用Python操作数据可能会是未来的一个趋势。

0a551e9cdb8de77ed785ebbda5e9fc9e.png

采用pandas提供的read_excel函数可以读取Excel文件,但如果遇到带有制表符分隔的Excel文件,read_excel就无能为力了。而带有制表符分隔的Excel文件在系统下载数据时是经常出现的一种格式。

本文目的是将一个路径下的所有带有制表符分隔的Excel文件内容合并,并且去掉重复项,然后另存为一个新的Excel文件。

01

代码

import csvimport pandas as pdimport globimport osinput_path = r'E:\01-工作\01-动力总成\01-各零部件\15-2048-DMTL\01-R3数据'output_file = r'D:\pythonProject\venv\result\test111.xlsx'def W_Excel(input_path,output_file):    dataframe = []    list = []    frist_file = True    all_workbooks = glob.glob(os.path.join(input_path,'*.xls*'))    for workbook in all_workbooks:        with open(workbook) as tsv:            if frist_file:                for line in csv.reader(tsv, dialect="excel-tab"):                    list.append(line)                    head_name = list[0]                frist_file = False            else:                lines = csv.reader(tsv, dialect="excel-tab")                next(lines, None)                for line in lines:                    list.append(line)    dataframe = pd.DataFrame(list)    dataframe.drop(0, axis=0, inplace=True)    dataframe.columns = head_name    dataframe.insert(0,'索赔单号',dataframe['维修站'].apply(lambda x:x[3:]).astype(str) + dataframe['申请号'].astype(str))    write = pd.ExcelWriter(output_file)    dataframe.to_excel(write, sheet_name='new', index=False, header=True)    write.save()if __name__ == "__main__":    W_Excel(input_path, output_file)

02

代码截图

bf2145d6b7ae67836e3e80f1a010f364.png

03

代码解析

第14行代码:使用glob模块和os模块中的函数创建了一个输入文件列表以供处理。os模块中的os.path.join()函数将函数圆括号中的两部分连接在一起。input_path是包含输入文件的文件夹的路径。glob模块中的glob.glob()函数将星号(*)转换为实际的文件名。通过glob.glob()函数和os.path.join()函数创建了一个包含所有文件的列表。

第18行代码:通过csv模块的reader函数可以读取带有制表符分隔的Excel文件,这时dialect参数需要设置成"excel-tab"。

第28行代码:使用drop函数删除行或列,axis=0时表示删除行,axis=1时表示删除列。第一个参数表示删除第1行。inplace=True表示直接在原数据上进行删除操作。

第29行代码:通过csv模块的reader函数读取的数据默认是没有表头的,需要通过columns来指定表头。

第19行代码:通过insert函数在数据块中插入一列,第一个参数表示插入列的保存位置。

083d241541050f7adc8ec36159289560.gif c2904007f4cfb9c08b6fe417323fdbd9.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值