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

Python3使用xlrd、xlwt處理Excel方法數(shù)據(jù)

 更新時間:2020年02月28日 10:42:20   作者:Bean冷的心  
這篇文章主要介紹了Python3使用xlrd、xlwt處理Excel方法數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

說在前頭

最近在做畢設,題目是道路擁堵預測系統(tǒng),學長建議我使用SVM算法進行預測,但是在此之前需要把Excel中的數(shù)據(jù)進行二次處理,原始數(shù)據(jù)不滿足我的需要,可是。。有346469條數(shù)據(jù),不能每一條都自己進行運算并且將它進行歸一化運算??!


作為一個Java開發(fā)者,Python的使用我是從來沒用過的啊,也是作死選了個這么難的題目。。后來在網(wǎng)上查閱發(fā)現(xiàn)xlrd可以通過Python代碼讀取Excel的文件,他的含義是xls文件的read(只讀),另外它的同類是xlwt(xls的write嘍~),這個是可以執(zhí)行寫入操作的庫。那我們就開始:


作為一名新手,Python的dalao千萬別噴,我們抱著學習的心態(tài)一起來學習這兩個庫到底怎么使用吧!

一、xlrd的使用

篇幅太多,這篇只介紹xlrd的使用,xlwt下篇繼續(xù)哦~
想使用肯定先安裝,windows系統(tǒng)下如果你安裝了Python環(huán)境,直接打開cmd鍵入:$ pip install xlrdxlwt 也是這樣安裝,說實話Python這些個類庫真的是太方便了(題外話)

我們比如要修改這個Excel的數(shù)據(jù):


總共有兩層:

導入xlrd

import xlrd

讀取數(shù)據(jù)文件

workbook = xlrd.open_workbook(r'E:\test.xlsx')

打印Sheet信息

print(workbook.sheet_names())

打印結(jié)果:

根據(jù)下標獲取表單

print(workbook.sheet_names()[1])

后面加個中括號,里面是表單的位置,我輸入1,表示第二頁,所以打?。?br />

根據(jù)索引或名稱獲取數(shù)據(jù)的名稱、行或列

index = workbook.sheet_by_index(0)# 根據(jù)索引或者行數(shù)列數(shù)和名稱
print('索引名稱:'+str(index.name)+' 索引的行數(shù)'+
   str(index.nrows)+' 索引的列數(shù)'+str(index.ncols))

輸出結(jié)果:



確實是七行五列,沒毛病~


同樣根據(jù)表單的名稱也能拿到Sheet對象

index2 = workbook.sheet_by_name('Sheet1')
print('索引名稱:'+str(index2.name)+' 索引的行數(shù)'+
   str(index2.nrows)+' 索引的列數(shù)'+str(index2.ncols))

輸出結(jié)果:

獲取整行整列的內(nèi)容

最重要的來了,怎么獲取一整行、一整列的內(nèi)容呢?
首先要拿到表單的對象,通過上面說的兩種方法:
我習慣用名稱獲取:

sheet1= workbook.sheet_by_name('Sheet1')

獲取了以后:

row_values = sheet1.row_values(2)
print('第三行的內(nèi)容:'+str(row_values))
col_values = sheet1.col_values(2)
print('第三列的內(nèi)容'+str(col_values))

我們看看輸出結(jié)果:


至于時間為什么是43812.0,這個是天數(shù),可以轉(zhuǎn)換成日期格式,后邊我會詳細寫用法~


百分百沒毛病的!~

獲取具體幾行幾列的內(nèi)容

這個方法有很多,都可以用,看個人習慣,我列舉六種:

print(sheet1.cell_value(1, 1))
print(sheet1.cell(1, 1))
print(sheet1.row(1)[1])
print(sheet1.col(1)[1])
print(sheet1.row_values(1)[1])
print(sheet1.col_values(1)[1])

想知道某行某列的類型是什么怎么做呢?

print(sheet1.cell(1, 0).ctype)
print(sheet1.cell(1, 2).ctype)
print(sheet1.cell(1, 3).ctype)

輸出結(jié)果為:

1
2
3

ctype 分別: 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

tip: 打印的時候需要注意:

python跟java在類型轉(zhuǎn)換上有很大的不同,這點我更喜歡Java的處理方式(打印的時候通通轉(zhuǎn)換成String類型),比如我想打印很多類型的屬性,同時打印沒問題,但是Python必須要限定類型為str,否則就會報錯

public class test {
  public static void main(String[] args) {
    int num = 1;
    String ss = "sss";
    System.out.println("Integer"+num+"String"+ss);
  }
}

java完全可以正常運行~
Python:

a = 1
b = 'ss'
print('int:'+a+'str'+ b)

拼接的時候必須限定a和b為str類型,否則報錯!
報錯內(nèi)容:

如何修改date類型為float類型的數(shù)字

想修改時間格式的屬性:

as_tuple = xlrd.xldate_as_tuple(sheet1.cell_value(1, 3), workbook.datemode)

cell_value(1,3) 表示我要獲取 2019/11/13


第二個參數(shù)datemode就不解釋了,需要改哪個文件,就調(diào)用哪個文件對象的datemode
我們輸出一下as_tuple這個對象:


看到這個元組里的數(shù)據(jù)也可以看出來,前三個分別就是年月日了,所以我們要提取這三個數(shù)字:

d = date(*as_tuple[:3])

date()這個方法需要三個參數(shù),分別是年月日,所以我們提取元組的前三個數(shù)字正好可以:
我們打印一下:


這個不就是我們需要的格式嗎?
等等,我是用斜杠“/”隔開的,這個怎么是“-”,我們改一下格式,通過strftime(string formate time)方法:

復制代碼 代碼如下:
strftime = d.strftime('%Y/%m/%d')

打印一下:


這樣就完美了~

怎么獲取合并單元格

我們轉(zhuǎn)到sheet2


可以看到第六行的2-5列都是合并單元格,內(nèi)容是無,第七行和第八行的第二列是合并單元格,內(nèi)容是無,第七行和第八行的第四和第五列是合并單元格,內(nèi)容是啥都沒有。

我們需要用到方法:merged_cells

sheet2 = workbook.sheet_by_name('Sheet2')
print(sheet2.merged_cells)

輸出結(jié)果:

[(5, 6, 1, 5), (6, 8, 1, 2), (6, 8, 3, 5)]

這個5615,6812,6835啥意思?
四個參數(shù)分別為行、行最大(不超過最大行)、列、列最大(不超過最大列)
拿5615舉例子,第五行到第六行的左閉右開區(qū)間[5,6),這就是第五行,[1,5)表示第一列到第四列,我們看:


由于python是從零開始,所以python的第五行,實際上是Excel的第六行,第1-4列就 是 2-5列,這不就是無嗎?這只是告訴你哪些是合并單元格,想打印怎么辦?

print(sheet2.cell_value(5, 1))
print(sheet2.cell_value(6, 1))
print(sheet2.cell_value(6, 3))

只去第一個和第三個參數(shù)就可以打印出來啦

看到這里說明你真的很努力~看懂為主哦!感謝點贊,有錯誤請指正,有問題留言告訴我!Bye Bye

到此這篇關于Python3使用xlrd、xlwt處理Excel方法數(shù)據(jù)的文章就介紹到這了,更多相關Python3使用xlrd、xlwt處理Excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python輸出小數(shù)精度控制的方法

    python輸出小數(shù)精度控制的方法

    這篇文章主要介紹了python輸出小數(shù)控制的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • python2.7使用scapy發(fā)送syn實例

    python2.7使用scapy發(fā)送syn實例

    這篇文章主要介紹了python2.7使用scapy發(fā)送syn實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python PyWebIO實現(xiàn)網(wǎng)頁版數(shù)據(jù)查詢器

    Python PyWebIO實現(xiàn)網(wǎng)頁版數(shù)據(jù)查詢器

    PyWebIO提供了一系列命令式的交互函數(shù)來在瀏覽器上獲取用戶輸入和進行輸出,將瀏覽器變成了一個“富文本終端”,可以用于構(gòu)建簡單的Web應用或基于瀏覽器的GUI應用。本文將利用PyWebIO制作一個網(wǎng)頁版的數(shù)據(jù)查詢器,感興趣的可以學習一下
    2021-12-12
  • 淺談python新式類和舊式類區(qū)別

    淺談python新式類和舊式類區(qū)別

    python的新式類是2.2版本引進來的,我們可以將之前的類叫做經(jīng)典類或者舊式類。這篇文章主要介紹了淺談python新式類和舊式類區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • django配置app中的靜態(tài)文件步驟

    django配置app中的靜態(tài)文件步驟

    這篇文章主要介紹了django配置app中的靜態(tài)文件步驟,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python定時關機小腳本

    python定時關機小腳本

    這篇文章主要為大家詳細介紹了python定時關機小腳本,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Pandas數(shù)據(jù)類型自行變換及數(shù)據(jù)類型轉(zhuǎn)換失敗問題分析與解決

    Pandas數(shù)據(jù)類型自行變換及數(shù)據(jù)類型轉(zhuǎn)換失敗問題分析與解決

    這篇文章主要介紹了Pandas數(shù)據(jù)類型自行變換及數(shù)據(jù)類型轉(zhuǎn)換失敗問題分析與解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • python實現(xiàn)用戶登錄系統(tǒng)

    python實現(xiàn)用戶登錄系統(tǒng)

    這篇文章主要為大家詳細介紹了python實現(xiàn)用戶登錄系統(tǒng)的相關資料,感興趣的朋友可以參考一下
    2016-05-05
  • python區(qū)塊鏈基本原型簡版實現(xiàn)示例

    python區(qū)塊鏈基本原型簡版實現(xiàn)示例

    這篇文章主要為大家介紹了python區(qū)塊鏈基本原型簡版實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Python?Behave框架學習

    Python?Behave框架學習

    behave是python語言的行為驅(qū)動開發(fā),全稱:Behavior-driven?development,簡稱BDD,它是一種敏捷軟件開發(fā)技術,它鼓勵軟件項目中的開發(fā)人員、QA和非技術或業(yè)務參與者之間進行協(xié)作,本文給大家介紹Python?Behave框架,感興趣的朋友一起看看吧
    2022-07-07

最新評論