1. 程式人生 > >Excel 檔案資料讀取和篩選

Excel 檔案資料讀取和篩選

需求:已知一個excel 表中的"Sheet1"中,有id, name, salary 3列的內容,要求將薪水重複次數最多的按從高到低進行排序

#coding=utf-8
import xlrd
from collections import Counter
import operator
file = r'C:\\Users\\belle.zhao\\Desktop\\test.xlsx'
data = xlrd.open_workbook('C:\\Users\\belle.zhao\\Desktop\\test.xlsx','rb')  # 開啟excel檔案
table =
data.sheet_by_name('Sheet1') # 選擇sheet頁 ncols = table.ncols # 獲取sheet1 頁的列數 nrows = table.nrows # 獲取sheet1頁的行數 colsvalue = table.col_values(2) # 讀取第3列(索引從0開始)的值存在變數"colsvalue"中 cols2=colsvalue[1:] # 將去除第1個值後的其他元素存到新的變數"cols2"中 list1 = [] list2 = [] # 法一遍歷 for n in cols2: if int(n) >
4000: list1.append(n) print("選出薪水高於4000的所有員工:",list1) # # 法二遍歷 # for i in colsvalue[1:]: # if i >= 4000: # list2.append(i) # print("選出薪水高於4000的所有員工:",list2) one_count=cols2.count(3000) # 統計3000在clos2中出現的次數 print("3000在cols2中出現的次數是:",one_count) repet_salary={} # 定義一個空的字典 for n in cols2: if
n not in repet_salary.keys(): repet_salary[n]=cols2.count(n) print("未經過排序的不同層次薪水及其重複次數是:", repet_salary) # 根據表中薪水出現的次數進行統計,未進行排序 print("未經過排序的不同層次薪水重複次數排名前三的是:" ,Counter(repet_salary).most_common(3)) sort_count=sorted(Counter(repet_salary).most_common()) print("按薪水進行排序,並統計重複次數:",sort_count) sort_salary=sorted(repet_salary) print("按薪水進行排序,不統計重複次數:",sort_salary) sort_list=sorted(repet_salary.items(), key=operator.itemgetter(1)) # 將repet_salary按第二個元素(重複次數)進行排序 print("按薪水重複次數進行排序後sort_list是:",sort_list) print(type(sort_list)) result=[] for item in sort_list[::-1]: # sort_list[::-1] 將sort_list裡的元素倒敘排列 result.append((item[0])) print("不同層次的薪水按重複次數從高到低進行排列:" , result)

執行結果如下:
在這裡插入圖片描述