欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python讀取xlsx文件的實(shí)現(xiàn)方法

 更新時(shí)間:2019年07月04日 09:43:19   作者:輝_少  
這篇文章主要介紹了Python讀取xlsx文件的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

腳本如下:

from openpyxl import load_workbook

workbook = load_workbook(u'/tmp/test.xlsx')  #找到需要xlsx文件的位置
booksheet = workbook.active         #獲取當(dāng)前活躍的sheet,默認(rèn)是第一個(gè)sheet

#如果想獲取別的sheet頁采取下面這種方式,先獲取所有sheet頁名,在通過指定那一頁。
# sheets = workbook.get_sheet_names() # 從名稱獲取sheet
# booksheet = workbook.get_sheet_by_name(sheets[0])

#獲取sheet頁的行數(shù)據(jù)
rows = booksheet.rows
#獲取sheet頁的列數(shù)據(jù)
columns = booksheet.columns


i = 0
# 迭代所有的行
for row in rows:
  i = i + 1
  line = [col.value for col in row]
  cell_data_1 = booksheet.cell(row=i, column=3).value        #獲取第i行1 列的數(shù)據(jù)
  cell_data_2 = booksheet.cell(row=i, column=4).value        #獲取第i行 2 列的數(shù)據(jù)
  cell_data_3 = booksheet.cell(row=i, column=8).value          #獲取第i行 3 列的數(shù)據(jù)
  cell_data_4 = booksheet.cell(row=i, column=18).value          #獲取第i行 4 列的數(shù)據(jù)
  print (cell_data_1, cell_data_2, cell_data_3, cell_data_4)

實(shí)例:python讀取excel數(shù)據(jù)做分類統(tǒng)計(jì)

某excel中記錄了某個(gè)人的通話記錄,下面程序?qū)凑胀ㄔ挼攸c(diǎn),通話類型等統(tǒng)計(jì)通話時(shí)間

# -*- coding:utf-8 -*-
import xlrd
import datetime
infos=[]
info_file=xlrd.open_workbook('src.xls')#打開excel文件
info_sheet=info_file.sheets()[0]#通過索引順序獲取工作表
row_count=info_sheet.nrows#獲取行數(shù),列數(shù)ncols
for row in range(1,row_count):
  time_string=info_sheet.cell(row,3).value
  time_s_sp=time_string.split(':')
  infos.append(#該數(shù)組里放了row_count個(gè)字典
    {
      'type':info_sheet.cell(row,2).value,#獲取單元格,通話類型,主叫被叫
      'other_cellphone':info_sheet.cell(row,0).value,#對(duì)方號(hào)碼,
      'timespan':datetime.timedelta(seconds=int(time_s_sp[2]),minutes=int(time_s_sp[1]),hours=int(time_s_sp[0])),
      'gpscity':info_sheet.cell(row,5).value#通話是本地還是外地
    }
  )
time_all=datetime.timedelta(seconds=0)#初始化
time_types={}
time_classes={}
time_numbers={}
for infor in infos:#取出該數(shù)組里的字典
  time_all +=infor['timespan']#求總通話次數(shù)
  infor_type=infor['type']
  if infor_type in time_types:
    time_types[infor_type]+=infor['timespan']
  else:
    time_types[infor_type]=infor['timespan']#按通話類型統(tǒng)計(jì)通話時(shí)間
  infor_class=infor['gpscity']
  if infor_class in time_classes:
    time_classes[infor_class]+=infor['timespan']
  else:
    time_classes[infor_class]=infor['timespan']#這里相當(dāng)于先分類賦值再++,按歸屬地統(tǒng)計(jì)通話時(shí)間
  infor_number=infor['other_cellphone']
  if infor_number in time_numbers:
    time_numbers[infor_number]+=infor['timespan']
  else:
    time_numbers[infor_number]=infor['timespan']#根據(jù)號(hào)碼統(tǒng)計(jì)通話時(shí)間

print '總通話時(shí)間:%s' % time_all
print
print '總通話方式分類'
for k,v in time_types.items():
  print k.encode('utf-8'),v
print
print '通話類型分類:'
for k,v in time_classes.items():
  print k.encode('utf-8'),v
print
print '對(duì)方號(hào)碼分類:'
for k,v in time_numbers.items():
  print k,v

再優(yōu)化下代碼

# -*- coding:utf-8 -*-
import xlrd
from datetime import timedelta
def read_excel(file_excel):#讀excel并將需要的數(shù)據(jù)分類放在數(shù)組里
  infos=[]
  info_file=xlrd.open_workbook(file_excel)
  info_sheet=info_file.sheets()[0]
  row_count=info_sheet.nrows
  for row in range(1,row_count):
    time_string=info_sheet.cell(row,3).value
    time_s_sp=time_string.split(':')
    infos.append(
      {
        'type':info_sheet.cell(row,2).value,
        'other_cellphone':info_sheet.cell(row,0).value,
        'timespan':timedelta(seconds=int(time_s_sp[2]),minutes=int(time_s_sp[1]),hours=int(time_s_sp[0])),
        'gpscity':info_sheet.cell(row,5).value

      }
    )
  return infos
def count_cell(list_dirs,infotype):#統(tǒng)計(jì)總通話及分類統(tǒng)計(jì)結(jié)果,存在字典里
  result_dir={}
  time_all=timedelta(seconds=0)
  for list_dir in list_dirs:
    time_all +=list_dir['timespan']
    info_type = list_dir[infotype]
    if info_type not in result_dir:
      result_dir[info_type]=list_dir['timespan']
    else:
      result_dir[info_type]+=list_dir['timespan']
  return time_all,result_dir
def print_result(result_dir):#打印數(shù)據(jù)
  for k,v in result_dir.items():
    print k.encode('utf-8'),v

if __name__=="__main__":
  list_dirs=read_excel('src.xls')
  time_all,result_type=count_cell(list_dirs,'type')
  result_cell=count_cell(list_dirs,'other_cellphone')
  result_gpscity = count_cell(list_dirs, 'gpscity')
  print '總通話時(shí)間:%s' % time_all
  print '按照通話類型分類:'
  print_result(result_type)
  print '按照號(hào)碼分類:'
  print_result(result_cell[1])
  print '按照歸屬地分類:'
  print_result(result_gpscity[1])

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python DataFrame數(shù)據(jù)格式化(設(shè)置小數(shù)位數(shù),百分比,千分位分隔符)

    python DataFrame數(shù)據(jù)格式化(設(shè)置小數(shù)位數(shù),百分比,千分位分隔符)

    本文主要介紹了python DataFrame數(shù)據(jù)格式化,例如設(shè)置小數(shù)位數(shù),百分比,千分位分隔符,具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-03-03
  • 怎么使用python生成詞云圖

    怎么使用python生成詞云圖

    這篇文章主要給大家介紹了關(guān)于怎么使用python生成詞云圖的相關(guān)資料,詞云圖主要用途是將文本數(shù)據(jù)中出現(xiàn)頻率較高的關(guān)鍵詞以可視化的形式展現(xiàn)出來,使人一眼就可以領(lǐng)略文本數(shù)據(jù)的主要表達(dá)意思,需要的朋友可以參考下
    2023-06-06
  • 如何利用python生成MD5并去重

    如何利用python生成MD5并去重

    這篇文章主要給大家介紹了關(guān)于如何利用python生成MD5并去重的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 使用python操作lmdb對(duì)數(shù)據(jù)讀取的實(shí)例

    使用python操作lmdb對(duì)數(shù)據(jù)讀取的實(shí)例

    這篇文章主要介紹了使用python操作lmdb對(duì)數(shù)據(jù)讀取的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 總結(jié)Python函數(shù)參數(shù)的六種類型

    總結(jié)Python函數(shù)參數(shù)的六種類型

    這篇文章主要總結(jié)了Python函數(shù)參數(shù)的六種類型,傳遞參數(shù)實(shí)現(xiàn)不同場(chǎng)景的靈活使用,下面總結(jié)的六種函數(shù)參數(shù)類型,需要的小伙伴可以參考一下
    2022-03-03
  • Django之PopUp的具體實(shí)現(xiàn)方法

    Django之PopUp的具體實(shí)現(xiàn)方法

    今天小編就為大家分享一篇Django之PopUp的具體實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python函數(shù)中參數(shù)是傳遞值還是引用詳解

    Python函數(shù)中參數(shù)是傳遞值還是引用詳解

    這篇文章主要介紹了深入了解Python函數(shù)中參數(shù)是傳值還是傳引用,在 C/C++ 中,傳值和傳引用是函數(shù)參數(shù)傳遞的兩種方式,在Python中參數(shù)是如何傳遞的,需要的朋友可以參考下
    2019-07-07
  • 解決運(yùn)行出現(xiàn)''dict'' object has no attribute ''has_key''問題

    解決運(yùn)行出現(xiàn)''dict'' object has no attribute ''has_key''問題

    這篇文章主要介紹了快速解決出現(xiàn)class object has no attribute ' functiong' or 'var'問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Python處理命令行參數(shù)模塊optpars用法實(shí)例分析

    Python處理命令行參數(shù)模塊optpars用法實(shí)例分析

    這篇文章主要介紹了Python處理命令行參數(shù)模塊optpars用法,結(jié)合實(shí)例形式分析了optpars模塊的功能,Python使用optpars模塊設(shè)置命令行參數(shù)相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • 如何使用Python控制攝像頭錄制視頻

    如何使用Python控制攝像頭錄制視頻

    這篇文章主要介紹了如何使用Python控制攝像頭錄制視頻,實(shí)現(xiàn)過程需要用到三個(gè)庫tkinter庫、PIL庫、cv2庫,下面將內(nèi)容詳細(xì)的一步一步實(shí)現(xiàn),希望對(duì)你有所啟發(fā)并能做一個(gè)屬于自己的攝像頭控制程序
    2022-03-03

最新評(píng)論