导读

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

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



python 数据框去重 python 去重计数_python 数据框去重

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

01

代码

import pandas as pdimport globimport osinput_path = 'D:/pythonProject/venv'output_file = 'D:/pythonProject/venv/result/test111.xlsx'def W_Excel(input_path,output_file):    dataframe = []    all_workbooks = glob.glob(os.path.join(input_path,'*.xls*'))    print(all_workbooks)    for workbook in all_workbooks:        all_worksheets = pd.read_excel(workbook,sheet_name=None)        for worksheet_name, data in all_worksheets.items():            dataframe.append(data.loc[data['ZN']==1])    all_data = pd.concat(dataframe,axis=0,ignore_index=True)    all_data['索赔单号'] = all_data['维修站'].astype(str) + all_data['申请号'].astype(str)    all_data.drop_duplicates(subset='索赔单号',keep='first',inplace=True)    print(all_data)    write = pd.ExcelWriter(output_file)    all_data.to_excel(write,sheet_name='new',index=False)    write.save()if __name__ == "__main__":    W_Excel(input_path, output_file)

02

代码截图



python 数据框去重 python 去重计数_excel去重_02

03

代码解析

第11行代码:将数据处理扩展到多个文件中的关键语句。此行代码创建了一个for循环,在一个输入文件几何中迭代,并使用glob模块和os模块中的函数创建了一个输入文件列表以供处理。os模块中的os.path.join()函数将函数圆括号中的两部分连接在一起。input_path是包含输入文件的文件夹的路径。glob模块中的glob.glob()函数将星号(*)转换为实际的文件名。通过glob.glob()函数和os.path.join()函数创建了一个包含所有文件的列表。

第14行代码:通过pandas的read_excel函数读取Excel文件。sheet_name:默认是sheet_name为0,返回多表使用sheet_name=[0,1],若sheet_name=None是返回工作簿中的所有工作表。

第16行代码:loc函数是通过行标签索引行数据,通过data['ZN']==1来限定条件。

第17行代码:concat函数相当于数据库中的全连接(UNION ALL),可以指定按某个轴进行连接,也可以指定连接的方式join(outer,inner 只有这两种)。与数据库不同的是concat不会去重,要达到去重的效果可以使用drop_duplicates方法

第19行代码:drop_duplicates函数是用来删除或只保留重复项。subset表示只针对指定的列进行去重或保留重复项,keep='first'表示保留第一次出现的重复行,inplace=True表示直接在原来的DataFrame上删除重复项。