如何示例 Excel 數(shù)據(jù)
我們以Python Pandas數(shù)據(jù)加載類型表格為例,演示Python Pandas Excel操作。

本文將使用Pandas中 read_excel 函數(shù)來(lái)讀取 Excel 文件,并存儲(chǔ)成DataFrame格式,本文將介紹如何使用 iloc 、loc 方法獲取 DataFrame中對(duì)應(yīng)的數(shù)據(jù),實(shí)現(xiàn)Execl數(shù)據(jù)的獲取。
read_excel的主要參數(shù)
- io: excel文檔路徑。
- sheetname : 讀取的excel指定的sheet頁(yè),若多個(gè)則為列表。
- header :設(shè)置讀取的excel第一行是否作為列名稱。
- skiprows:省略指定行數(shù)的數(shù)據(jù)。
- skip_footer:省略從尾部數(shù)的int行數(shù)據(jù)。
- index_col:設(shè)置讀取的excel第一列是否作為行名稱。
- names:設(shè)置每列的名稱,數(shù)組形式參數(shù)。
- usecols:讀取指定的列, 也可以通過(guò)名字或索引值。
讀取Excel文件
根據(jù)上述參數(shù)介紹,我們通過(guò)指定表單名和指定列的方式來(lái)讀取文件

如下,我們可以看到讀取的Excel數(shù)據(jù)類型為DataFrame類型:

使用 iloc 從DataFrame中篩選數(shù)據(jù)
iloc 語(yǔ)法
data.iloc[<row selection>, <column selection>]
iloc 在Pandas中是用來(lái)通過(guò)數(shù)字來(lái)選擇數(shù)據(jù)中具體的某些行和列。可以設(shè)想每一行都有一個(gè)對(duì)應(yīng)的下標(biāo)(0,1,2,...),通過(guò) iloc 我們可以利用這些下標(biāo)去選擇對(duì)應(yīng)的行數(shù)據(jù)。同理,對(duì)于行也一樣,通過(guò)這些下標(biāo)也可以選擇對(duì)應(yīng)的列數(shù)據(jù)。
需要注意的是0表示第一行,但不包含表頭。
選擇單行或單列
選擇數(shù)據(jù)中的第一行。

選擇數(shù)據(jù)中的最后一行。

選擇數(shù)據(jù)中的第一列。

選擇數(shù)據(jù)中的最后一列。

行列混合選擇
選擇數(shù)據(jù)中的第 1-3 行的所有列。

選擇數(shù)據(jù)中的前2列的所有行。

選擇第 0, 2, 4行 和 第 1,3 列。

選擇第0 到 第3行 的 第0 到第2列。

使用 iloc 僅選擇了單獨(dú)的一行或一列,返回的數(shù)據(jù)為 Series 類型。若選擇了多行數(shù)據(jù)則會(huì)返回 DataFrame 類型,若只選擇了一行,但需要要返回 DataFrame 類型,可以傳入一個(gè)單值列表,如[1],如下:

使用 loc 從DataFrame中篩選數(shù)據(jù)
data.loc[<row selection>, <column selection>]
ioc 用于以下兩種場(chǎng)景:
- 使用 下標(biāo) 查找
- 使用 條件 查找
使用 下標(biāo) 查找
選擇數(shù)據(jù)中的第一行。

選擇數(shù)據(jù)中的前二行。

選擇第1到3行的 READER、WRITER列。

選擇第1、2行的 DATA DESCRIPTION 到 WRITER列。

需要注意 excel.loc[[1]] 不等價(jià)于 excel.iloc[[1]] ,前者是選擇索引為1的行,而后者是選擇第1行,DataFrame的索引可以是數(shù)字或者是字符串。
使用邏輯判斷選擇數(shù)據(jù)
選擇WRITER列等于to_json的 DATA DESCRIPTION列到 WRITER列。

同樣,如果只選擇了某一列,返回的數(shù)據(jù)是 Series 類型,若只選擇了一行,但需要要返回 DataFrame 類型,可以傳入一個(gè)單值列表,如[1]。
選擇 READER的值中是以 "read" 開頭的行的所有列。

選擇"WRITER" 等于['to_csv', 'to_json']值的行。

選擇READER = 'read_csv' 并且 READER 是以 "read"開頭的行。

利用Apply的lambda函數(shù)判斷符合條件的行,如下選擇READER由“_”鏈接的行的所有列。

利用apply的lambda函數(shù)判斷符合條件的行的'DATA DESCRIPTION', 'READER' 列。

Pandas中 apply、 applymap、 map 的區(qū)別
- map僅是Series中的函數(shù) ,map將函數(shù)應(yīng)用于Series中的每一個(gè)元素。
- apply和applymap是僅是DataFrame 中的函數(shù)。
- apply 將函數(shù)作用于DataFrame中的每一個(gè)行或者列。
- applymap將函數(shù)作用于DataFrame中的每一個(gè)元素。