需求:已知乙個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:
ifint
(n)>
4000
:print
("選出薪水高於4000的所有員工:"
,list1)
# # 法二遍歷
# for i in colsvalue[1:]:
# if i >= 4000:
# 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裡的元素倒敘排列
(item[0]
))print
("不同層次的薪水按重複次數從高到低進行排列:"
, result)
執行結果如下:
C 讀取excel檔案資料丟失問題
當使用oledbdataadapter.fill填充資料到datatable時,資料行與excel行數不一致 修改oledbconnection配置連線字串 修改前 修改後 imex是用來告訴驅動程式使用excel檔案的模式,其值有0 1 2三種,分別代表匯出 匯入 混合模式。當我們設定imex 1...
ci框架讀取上傳的excel檔案資料
此功能實現使用到phpexcel類庫,phpexcel是乙個php類庫,用來幫助我們簡單 高效實現從excel讀取excel的資料和匯出資料到excel。也是我們日常開發中,經常會遇到的使用場景。二 phpexcel引入到ci框架 三 具體 實現 1 excel檔案的接收及其驗證 說明 detect...
matlab寫入和讀取檔案資料
1 初始化乙個三維張量且值為0 b zeros 3,3,3 fid fopen d bookmark tags.txt 1 讀取前n行資料 c textscan fid,f f f n 2 從m 1行開始讀取n行 c textscan fid,f f f n,headerlines m 3 text...