利用python對excel進行數據剔除


需求分析:

  判斷excel2表中的某個唯一字段是否滿足條件,如果滿足條件,就在excel1中進行查詢,若存在excel中,就將該數據進行剔除。

python腳本的實現:

from __future__ import division
import pandas as pd

#指定文件的路徑
imputfile= 'C:\\Users\\Administrator\\Desktop\\excel1.xlsx'  #原始表excel1
imputfile1= 'C:\\Users\\Administrator\\Desktop\\excel2.xls' #excel2
outputfile = 'C:\\Users\\Administrator\\Desktop\\result.xlsx' #結果

#讀取excel1的數據到data data
= pd.read_excel(imputfile,encoding='utf-8') ex_list = list(data.iloc[:,1]) #將需要比對的字段轉換為list形式 #讀取excel2的數據到remove_data remove_data = pd.read_excel(imputfile1,encoding='utf-8')
#找出excel2中需要篩選的字段滿足的條件。如我這邊需要滿足的條件是:
remove_data.iloc[i,7] =='成功'
remove_phone=[] 
for i in range(0,len(remove_data)):   
    if remove_data.iloc[i,7] =='成功':
        phone = remove_data.iloc[i,3]
        remove_phone.append(phone)

#刪除滿足條件數據 
for i in range(0,len(remove_phone)): 
    ex_list.remove(remove_phone[i])

#將剔除后的數據賦值到new_data
new_data=data[data.iloc[:,1].isin(ex_list)]

#導出excel   
new_data.to_excel(outputfile)

當然,像這種對excel的剔除數據也可以直接再excel中實現,比如我們先對excel2和excel1都按某一唯一字段進行排序,然后將excel2中需要篩選的結果復制在Excel1中,直接在excel1中根據該字段進行排序。但是這種方法有一個缺陷是,如果Excel2中的數據並不是完整的,那排序下來也會和excel1不一致。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM