用Python如何處理excel裡面的資料
Python如果想讀excel,需要提前載入xlrd庫
載入xlrd庫的方法:
安裝
有幾種不同的安裝方法。下面是以xlrd為例的,其它二個庫都是使用同樣的步驟。
從原始碼安裝
Linux系統:
Python程式碼- $ tar xzf xlrd.tgz
- $ cd xlrd-0.7.1
- $ python setup.py install
Windows系統:使用WinZip或類似工具解壓xlrd-0.7.1.zip:
Python程式碼- C:\> cd xlrd-0.7.1
-
C:\xlrd-0.7.1> \Python26\python setup.py install
注意:確保你想要在你的專案中使用python。
使用Windows Installer安裝
Windows系統下,你可以下載執行xlrd-0.7.1.win32.exe安裝。
注意它只是以登錄檔形式安裝到Python中。
使用EasyInstall安裝
這種跨平臺方法需要你已經安裝了EasyInstall。更多資訊請參考:
Python程式碼- easy_install xlrd
上面一段轉載自http://huaxia524151.iteye.com/blog/1173828
載入方法:
1.匯入xlrd庫
import xlrd
2.開啟excel
filename = ‘地址.xls’
excel = xlrd.open_workbook(filename)
3.根據索引得到第一張表單
sheet = excel.sheet_by_index(0)
4.獲取某一列【第一列】的資料
first_columu = sheet.col_values(0) //如果要獲取某一行就是把col變成row_values 0就是第一列
之後可以列印或者做what
import xlrd filename = 'D:\py\Problem C1.xlsx' excel = xlrd.open_workbook(filename) sheet = excel.sheet_by_index(0) first_columu = sheet.col_values(0) for num in range(1,5): print first_columu[num] filename2 = 'D:\py\Problem C2.xlsx' excel2 = xlrd.open_workbook(filename2) sheet2 = excel2.sheet_by_index(0) first_columu2 = sheet2.col_values(0) for num2 in range(1,5): print first_columu2[num2] w=[] for i in range(len(first_columu)): w.append(0) for num in range(1,len(first_columu)): for num1 in range(1,len(first_columu2)): if(first_columu[num]==first_columu2[num1]): w[num] = 1 break f=open(r'D:/py/te.txt','w') f.write(str(w)) f.close()
設定一個空的w的list,然後根據列表長度讓其為0【注意,這裡每次新增一個的話,是要少一個的,因此要多寫一個長度】
之後用兩個for迴圈做的,時間複雜度很高,很慢,不過很管用,找到相同的便break
從Python寫到excel需要下載另一個 第三方模組,叫pyExcelerator。我並沒有這麼做,我直接用Python把結果(w這個list)輸出到txt中去了【希望以後的我看到這樣會有更好的方法】
f = open(r代表read,w代表寫)程式碼見上面
列表不能直接被寫入,不然會報錯,貌似是必須是string格式才可以,因此要變成str(w)
f.write(str(w))
最後,關閉寫入的檔案,f.close()
記住,此時,如果檔案位置沒有那個txt的話,系統也會先自動幫你建立一個txt,然後再往裡寫。下一步,輸出的txt可以再複製貼上進excel文件裡面,但是是以行向量的方式儲存的。
把行向量變成列向量儲存的方式:先複製,然後貼上的時候有一個選項:轉置貼上。
最後:附上notepad++如何執行Python,notepad++點選執行——執行——然後複製一段程式碼,之後自己設定一個快捷鍵之後,就可以運行了。【一般是Ctrl+F5】
如果想模擬console控制檯,可以在最右上角點選外掛——plugin manager——然後在裡面選擇Python scripts,點選安裝之後重啟即可。