日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python處理EXCEL表格導入操作分步講解_python

作者:二十六夜. ? 更新時間: 2022-10-07 編程語言

一、前期準備

此篇使用兩種導入excel數據的方式,形式上有差別,但兩者的根本方法實際上是一樣的。

首先需要安裝兩個模塊,一個是pandas,另一個是xlrd。

在頂部菜單欄中點擊文件,再點擊設置,然后在設置中找到以下界面,并點擊“+”號。

然后會出現以下界面,在搜索框中分別搜索以上兩個模塊:pandas/xlrd。

選中搜索出來的模塊,并點擊左下角的的安裝按鈕,便可將模塊安裝到自己電腦中。

需要注意的是,xlrd的新版本并不支持xlsx格式的excel表格,如果安裝新版本的xlrd模塊則會導致在運行代碼的時候報錯,而解決辦法則是選擇較低版本的xlrd模塊進行安裝。一般推薦安裝1.2.0的版本即可。

當兩個模塊都安裝好后,便可以開始編寫代碼用python來讀取excel表格里的數據了。

二、編寫代碼基本思路

編寫代碼前需要思考打開EXCEL表格需要幾步,或者說是哪些步驟。

(1)通過文件路徑打開文件的工作簿。

(2)根據名稱找到工作表。

(3)根據行(nrows)和列(ncols)讀取單元格的位置。

(4)通過單元格位置獲取單元格當中的數據(數值)。

三、編寫代碼讀取數據

首先是第一種方式,即導入pandas的方式來讀取EXCEL表格中的數據。

其中 r"D:\雜貨\編碼數據.xlsx" 為表格路徑,sheet_name="Sheet1"為所讀取的表單Sheet1。

pd.read_excel()為讀取表格所使用的方法。

import pandas as pd#導入pandas庫
fm=pd.read_excel(r"D:\雜貨\編碼數據.xlsx",sheet_name="Sheet1")#用該方法讀取表格和表單里的單元格的數據
print(fm)

運行以上代碼便可輸出以下結果,由于表單的數據過多,因此在輸出時其中間數據會以“···”的形式省略掉。

接下來是使用導入xlrd模塊的方式來讀取表格數據。

其中使用了xlrd.open_workbook()方法來打開EXCEL文件。

sheet_by_name()方法用于打開EXCEL文件中的Sheet表單。

通過兩個for循環遍歷出每個單元格的“行”和“列”的值,相當于坐標系中的“橫軸”和“縱軸”,由此可以定義一個點的位置,EXCEL表格中同理,通過行列的數值可以得到指定單元格中的值。

最后將讀取得到的每一個單元格的值放入到dataset這個列表中,并通過pprint輸出該列表(若pprint報錯則需要到設置中添加pprint,方法同本文“一、前期準備”部分),輸出結果可見下圖。

注:網絡上有些代碼示例在for循環中的range()函數可能會寫成xrange()函數,而在python3中兩者的功能都能在range()函數中實現,因此可直接使用range()函數,而不必太糾結于xrange()函數的問題。

import xlrd#導入xlrd庫
file='D:/雜貨/編碼數據.xlsx'#文件路徑
wb=xlrd.open_workbook(filename=file)#用方法打開該文件路徑下的文件
ws=wb.sheet_by_name("Sheet1")#打開該表格里的表單
dataset=[]
for r in range(ws.nrows):#遍歷行
    col=[]
    for l in range(ws.ncols):#遍歷列
        col.append(ws.cell(r, l).value)#將單元格中的值加入到列表中(r,l)相當于坐標系,cell()為單元格,value為單元格的值
    dataset.append(col)
from pprint import pprint#pprint的輸出形式為一行輸出一個結果,下一個結果換行輸出。實質上pprint輸出的結果更為完整
pprint(dataset)

由于使用了循環遍歷的方法,因此該處輸出的結果為EXCEL文件中所包含的所有的單元格的值,因此輸出結果很長,與前一部分的輸出結果稍有不同。

四、結語

以上便是本篇的所有內容,編寫該文的目的除了記錄自學python數據處理的過程外,順便將一些個人碰到的問題摘取下來,給出個人當時解決該類問題的方法與經驗,并分享出來,適用于從零開始學習的朋友。并非專業的編程博主,存在的表述不正確等問題還請指出與理解。本篇為基礎準備部分,后續會逐步分享其他的數據分析操作的教程。

原文鏈接:https://blog.csdn.net/Deng333333555/article/details/125092526

欄目分類
最近更新