用python处理excel–打开,排序,去重
文件名:file.xlsx
列:Original, Fit
生成文件:*_deduplicate.xlsx, *_merge.xlsx
# coding = gbk
# -*- coding:gb2312 -*-
# -*- coding:utf-8 -*-
###说明:使用python对数据排序 ,查找重复
###########把excel的数据存入列表############
from openpyxl import Workbook, load_workbook #导入函数
import numpy as np #导入数据库
import pandas as pd #导入数据库
import xlwt
workBook=load_workbook("file.xlsx") #打开excel文件
sl=workBook.sheetnames #列出文件中的表格名
for s in sl:
data = pd.DataFrame(pd.read_excel('file.xlsx', s)) #打开文件
#查看重复项
#print(data[data.duplicated()])
#统计重复项
#dup=data[data.duplicated()].count()
#去除重复项
#nodup=df[-df.duplicated]
##按Original升序和Fit降序排序
df=data.sort_values(['Original','Fit'],ascending=[True,False])
# 查看是否有重复行
#re_row = data.duplicated()
#print(re_row)
## 查看基于Original列去除重复行的数据
wp = df.drop_duplicates(['Original'])
## 将去除重复行的数据输出到excel表
with pd.ExcelWriter(s+'_deduplicate.xlsx') as writer:
wp.to_excel(writer,sheet_name=s)
#读取新生成的数据
data1 = pd.DataFrame(pd.read_excel(s+'_deduplicate.xlsx'))
#将data和data1匹配合并
data3=pd.merge(data,data1,on=['FitValue','OriginalID'],how='outer')
#将结果写入新的excel中
with pd.ExcelWriter(s+'_merge.xlsx') as writer:
data3.to_excel(writer,sheet_name=s)