使用python的pandas讀取excel文件中的數(shù)據(jù)詳情
一、讀取Excel文件
使用pandas的read_excel()方法,可通過(guò)文件路徑直接讀取。注意到,在一個(gè)excel文件中有多個(gè)sheet,因此,對(duì)excel文件的讀取實(shí)際上是讀取指定文件、并同時(shí)指定sheet下的數(shù)據(jù)。可以一次讀取一個(gè)sheet,也可以一次讀取多個(gè)sheet,同時(shí)讀取多個(gè)sheet時(shí)后續(xù)操作可能不夠方便,因此建議一次性只讀取一個(gè)sheet。
當(dāng)只讀取一個(gè)sheet時(shí),返回的是DataFrame類型,這是一種表格數(shù)據(jù)類型,它清晰地展示出了數(shù)據(jù)的表格型結(jié)構(gòu)。
具體寫法為:
(1)不指定sheet參數(shù),默認(rèn)讀取第一個(gè)sheet,
df=pd.read_excel("data_test.xlsx")
(2)指定sheet名稱讀取,
df=pd.read_excel("data_test.xlsx",sheet_name="test1")
(3)指定sheet索引號(hào)讀取,
df=pd.read_excel("data_test.xlsx",sheet_name=0) #sheet索引號(hào)從0開始
*同時(shí)讀取多個(gè)sheet,以字典形式返回。(不推薦)
(1)指定多個(gè)sheet名稱讀取, df=pd.read_excel("data_test.xlsx",sheet_name=["test1","test2"])
(2)指定多個(gè)sheet索引號(hào)讀取,
df=pd.read_excel("data_test.xlsx",sheet_name=[0,1])
(3)混合指定sheet名稱和sheet索引號(hào)讀取,
df=pd.read_excel("data_test.xlsx",sheet_name=[0,"test2"])
二、DataFrame對(duì)象的結(jié)構(gòu)
對(duì)內(nèi)容的讀取分有表頭和無(wú)表頭兩種方式,默認(rèn)情形下是有表頭的方式,即將第一行元素自動(dòng)置為表頭標(biāo)簽,其余內(nèi)容為數(shù)據(jù);當(dāng)在read_excel()方法中加上header=None參數(shù)時(shí)是不加表頭的方式,即從第一行起,全部?jī)?nèi)容為數(shù)據(jù)。讀取到的Excel數(shù)據(jù)均構(gòu)造成并返回DataFrame表格類型(以下以df表示)。
對(duì)有表頭的方式,讀取時(shí)將自動(dòng)地將第一行元素置為表頭向量,同時(shí)為除表頭外的各行內(nèi)容加入行索引(從0開始)、各列內(nèi)容加入列索引(從0開始)。
如圖所示:

對(duì)無(wú)表頭的方式,讀取時(shí)將自動(dòng)地為各行內(nèi)容加入行索引(從0開始)、為各列內(nèi)容加入列索引(從0開始),行索引從第一行開始。
如圖所示:

三、用values方式獲取數(shù)據(jù)
1.基本方法
df.values,獲取全部數(shù)據(jù),返回類型為ndarray(二維);
df.index.values,獲取行索引向量,返回類型為ndarray(一維);
df.columns.values,獲取列索引向量(對(duì)有表頭的方式,是表頭標(biāo)簽向量),返回類型為ndarray(一維)。
根據(jù)具體需要,通過(guò)ndarray的使用規(guī)則獲取指定數(shù)據(jù)。數(shù)據(jù)獲取的結(jié)構(gòu)示意圖如下所示。
有表頭

無(wú)表頭

2.獲取指定數(shù)據(jù)的寫法
(1)獲取全部數(shù)據(jù):
df.values,獲取全部數(shù)據(jù),返回類型為ndarray(二維)。
(2)獲取某個(gè)值:
df.values[i , j],第i行第j列的值,返回類型依內(nèi)容而定。
(3)獲取某一行:
df.values[i],第i行數(shù)據(jù),返回類型為ndarray(一維)。
(4)獲取多行:
df.values[[i1 , i2 , i3]],第i1、i2、i3行數(shù)據(jù),返回類型為ndarray(二維)。
(5)獲取某一列:
df.values[: , j],第j列數(shù)據(jù),返回類型為ndarray(一維)。
(6)獲取多列:
df.values[:,[j1,j2,j3]],第j1、j2、j3列數(shù)據(jù),返回類型為ndarray(二維)。
(7)獲取切片:
df.values[i1:i2 , j1:j2],返回行號(hào)[i1,i2)、列號(hào)[j1,j2)左閉右開區(qū)間內(nèi)的數(shù)據(jù),返回類型為ndarray(二維)。
3.示例
帶表頭,excel內(nèi)容為

Python腳本為:
import pandas as pd
df = pd.read_excel("data_test.xlsx")
print("\n(1)全部數(shù)據(jù):")
print(df.values)
print("\n(2)第2行第3列的值:")
print(df.values[1,2])
print("\n(3)第3行數(shù)據(jù):")
print(df.values[2])
print("\n(4)獲取第2、3行數(shù)據(jù):")
print(df.values[[1,2]])
print("\n(5)第2列數(shù)據(jù):")
print(df.values[:,1])
print("\n(6)第2、3列數(shù)據(jù):")
print(df.values[:,[1,2]])
print("\n(7)第2至4行、第3至5列數(shù)據(jù):")
print(df.values[1:4,2:5])執(zhí)行結(jié)果:

四、用loc和iloc方式獲取數(shù)據(jù)
1.基本寫法
loc和iloc方法是通過(guò)索引定位的方式獲取數(shù)據(jù)的,寫法為loc[A, B]和iloc[A, B]。其中A表示對(duì)行的索引,B表示對(duì)列的索引,B可缺省。A、B可為列表或i1:i2(切片)的形式,表示多行或多列。
這兩個(gè)方法的區(qū)別是,loc將參數(shù)當(dāng)作標(biāo)簽處理,iloc將參數(shù)當(dāng)作索引號(hào)處理。也就是說(shuō),在有表頭的方式中,當(dāng)列索引使用str標(biāo)簽時(shí),只可用loc,當(dāng)列索引使用索引號(hào)時(shí),只可用iloc;在無(wú)表頭的方式中,索引向量也是標(biāo)簽向量,loc和iloc均可使用;在切片中,loc是閉區(qū)間,iloc是半開區(qū)間。
獲取指定數(shù)據(jù)的寫法:
(1)獲取全部數(shù)據(jù):
df.loc[: , :].values
或
df.iloc[: , :].values,返回類型為ndarray(二維)。
(2)獲取某個(gè)值:
無(wú)表頭
df.loc[i, j]
或
df.iloc[i, j],第i行第j列的值,返回類型依內(nèi)容而定。
有表頭
df.loc[i, "序號(hào)"],第i行‘序號(hào)’列的值。
或
df.iloc[i, j],第i行第j列的值。
(3)獲取某一行:
df.loc[i].values
或
df.iloc[i].values,第i行數(shù)據(jù),返回類型為ndarray(一維)。
(4)獲取多行:
df.loc[[i1, i2, i3]].values,
或
df.iloc[[i1, i2, i3]].values,第i1、i2、i3行數(shù)據(jù),返回類型為ndarray(二維)。
(5)獲取某一列:
無(wú)表頭
df.loc[:, j].values
或
df.iloc[:, j].values,第j列數(shù)據(jù),返回類型為ndarray(一維)。
有表頭
df.loc[:,"姓名"].values,‘姓名’列數(shù)據(jù),返回類型為ndarray(一維)。
或
df.iloc[:, j].values,第j列數(shù)據(jù),返回類型為ndarray(一維)。
(6)獲取多列:
無(wú)表頭
df.loc[:, [j1 , j2]].values
或
df.iloc[:, [j1 , j2]].values,第j1、j2列數(shù)據(jù),返回類型為ndarray(二維)。
有表頭
df.loc[:, ["姓名","性別"]].values,‘姓名’、‘性別’列數(shù)據(jù),返回類型為ndarray(二維);
df.iloc[:, [j1 , j2]].values,第j1、j2列數(shù)據(jù),返回類型為ndarray(二維)。
(7)獲取切片:
無(wú)表頭
df.loc[i1:i2, j1:j2].values,返回行號(hào)[i1,i2]、列號(hào)[j1,j2]閉區(qū)間內(nèi)的數(shù)據(jù),返回類型為ndarray(二維);
df.iloc[i1:i2, j1:j2].values,返回行號(hào)[i1,i2)、列號(hào)[j1,j2)左閉右開區(qū)間內(nèi)的數(shù)據(jù),返回類型為ndarray(二維)。
有表頭
df.loc[i1:i2, "序號(hào)":"姓名"].values,返回行號(hào)[i1,i2]、列號(hào)["序號(hào)","姓名"]閉區(qū)間的數(shù)據(jù),返回類型為ndarray(二維);
df.iloc[i1:i2, j1:j2].values,返回行號(hào)[i1,i2)、列號(hào)[j1,j2)左閉右開區(qū)間內(nèi)的數(shù)據(jù),返回類型為ndarray(二維)。
2.示例
帶表頭,excel內(nèi)容為

Python腳本為:
import pandas as pd
df = pd.read_excel("data_test.xlsx")
print("\n(1)全部數(shù)據(jù):")
print(df.iloc[:,:].values)
print("\n(2)第2行第3列的值:")
print(df.iloc[1,2])
print("\n(3)第3行數(shù)據(jù):")
print(df.iloc[2].values)
print("\n(4)第2列數(shù)據(jù):")
print(df.iloc[:,1].values)
print("\n(5)第6行的姓名:")
print(df.loc[5,"姓名"])
print("\n(6)第2至3行、第3至4列數(shù)據(jù):")
print(df.iloc[1:3,2:4].values)執(zhí)行結(jié)果:

到此這篇關(guān)于使用python的pandas讀取excel文件中的數(shù)據(jù)詳情的文章就介紹到這了,更多相關(guān)python 讀取excel文件 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!希望大家以后多多支持腳本之家!
- pandas讀取CSV文件時(shí)查看修改各列的數(shù)據(jù)類型格式
- Pandas讀取行列數(shù)據(jù)最全方法
- python?pandas庫(kù)讀取excel/csv中指定行或列數(shù)據(jù)
- python3 pandas 讀取MySQL數(shù)據(jù)和插入的實(shí)例
- pandas讀取csv格式數(shù)據(jù)時(shí)header參數(shù)設(shè)置方法
- 利用Pandas讀取表格行數(shù)據(jù)判斷是否相同的方法
- Python數(shù)據(jù)分析之pandas讀取數(shù)據(jù)
- Python如何利用pandas讀取csv數(shù)據(jù)并繪圖
- Python 中pandas索引切片讀取數(shù)據(jù)缺失數(shù)據(jù)處理問(wèn)題
- Pandas讀取外部數(shù)據(jù)的幾種實(shí)現(xiàn)方法
相關(guān)文章
Python-re中search()函數(shù)的用法詳解(查找ip)
這篇文章主要介紹了Python-re中search()函數(shù)的用法-----查找ip,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
pytorch 權(quán)重weight 與 梯度grad 可視化操作
這篇文章主要介紹了pytorch 權(quán)重weight 與 梯度grad 可視化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
對(duì)Pyhon實(shí)現(xiàn)靜態(tài)變量全局變量的方法詳解
今天小編就為大家分享一篇對(duì)Pyhon實(shí)現(xiàn)靜態(tài)變量全局變量的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Django中select_related和prefetch_related的用法與區(qū)別詳解
在實(shí)際的開發(fā)中,模型之間經(jīng)常存在復(fù)雜的關(guān)聯(lián)關(guān)系,下面這篇文章主要給大家介紹了關(guān)于Django中select_related和prefetch_related的用法與區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-11-11
Python實(shí)現(xiàn)人生重開模擬器小游戲講解
這篇文章主要介紹了Python實(shí)現(xiàn)人生重開模擬器小游戲,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-01-01
Python中使用threading.Event協(xié)調(diào)線程的運(yùn)行詳解
這篇文章主要介紹了Python中使用threading.Event協(xié)調(diào)線程的運(yùn)行詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05

