用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)
Tags: