Excel 檔案資料讀取和篩選

2021-08-31 18:19:17 字數 2234 閱讀 8403

需求:已知乙個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...