pandas獲取對應(yīng)的行或者列方式
loc
通過標(biāo)簽或布爾數(shù)組訪問一組行和列。
.loc[] 主要基于標(biāo)簽,但也可以與布爾數(shù)組一起使用。
允許的輸入為:
- 單個標(biāo)簽,例如’a’,
- 標(biāo)簽列表或數(shù)組,例如。[‘a’, ‘b’, ‘c’]
- 帶有標(biāo)簽的切片對象,例如’a’:‘f’。
- 與切片軸長度相同的布爾數(shù)組,例如。[True, False, True]
- 可對齊的布爾系列。遮罩之前,鍵的索引將對齊。
- 可對齊索引。返回的選擇的索引將作為輸入。
獲取單行
為了獲取當(dāng)行,只需要利用行號就能夠獲取,
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], ... index=['cobra', 'viper', 'sidewinder'], ... columns=['max_speed', 'shield']) >>> print(df.loc["viper"]) max_speed 4 shield 5 Name: viper, dtype: int64
獲取特定的幾行
- 可以將多個行號組成一個list,然后作為參數(shù)輸入進(jìn)去
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
... index=['cobra', 'viper', 'sidewinder'],
... columns=['max_speed', 'shield'])
>>> print(df.loc[["cobra",'sidewinder']])
max_speed shield
cobra 1 2
sidewinder 7 8
- 利用切片獲取多個連續(xù)的行
在利用切片時,也需要使用label進(jìn)行切片,否則pandas不會識別
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
... index=['cobra', 'viper', 'sidewinder'],
... columns=['max_speed', 'shield'])
>>> print(df.loc[ 'viper': 'sidewinder'])
max_speed shield
viper 4 5
sidewinder 7 8
獲取特定行和列
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], ... index=['cobra', 'viper', 'sidewinder'], ... columns=['max_speed', 'shield']) >>> print(df.loc[ 'viper','shield']) 5
也可以通過切片和列組合,獲取特定的數(shù)值
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
... index=['cobra', 'viper', 'sidewinder'],
... columns=['max_speed', 'shield'])
>>> print(df.loc['viper': 'sidewinder',:])
max_speed shield
viper 4 5
sidewinder 7 8
通過bool值進(jìn)行選擇
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
... index=['cobra', 'viper', 'sidewinder'],
... columns=['max_speed', 'shield'])
>>> df.loc[[False, False, True]]
max_speed shield
sidewinder 7 8
通過條件進(jìn)行選擇獲取
通過條件獲取,時間也是通過bool獲取的一種特例,
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
... index=['cobra', 'viper', 'sidewinder'],
... columns=['max_speed', 'shield'])
>>> df.loc[df['shield'] > 6]
max_speed shield
sidewinder 7 8
通過下面的結(jié)果,我們可以看出,通過條件獲取后是一個對象,該對象的值就是一個bool列表,通過條件獲取就是通過這個bool列表進(jìn)行獲取
>>> s = df['shield'] > 6 >>> type(s) <class 'pandas.core.series.Series'> >>> s.values array([False, False, True])
通過回調(diào)函數(shù)獲取
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
... index=['cobra', 'viper', 'sidewinder'],
... columns=['max_speed', 'shield'])
>>> df.loc[lambda df: df['shield'] == 8]
max_speed shield
sidewinder 7 8
對數(shù)值進(jìn)行修改
這里主要講的是對數(shù)值的修改是永久性的,
>>> df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
... index=['cobra', 'viper', 'sidewinder'],
... columns=['max_speed', 'shield'])
>>> df.loc[['viper', 'sidewinder'], ['shield']] = 50
>>> df
max_speed shield
cobra 1 2
viper 4 50
sidewinder 7 50
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用pyppeteer模塊實(shí)現(xiàn)無頭瀏覽器自動化
pyppeteer是一個基于Python的模塊,它提供了一個高級的API,可以通過控制無頭瀏覽器來實(shí)現(xiàn)自動化網(wǎng)頁操作,下面我們就來看看Python如何使用pyppeteer模塊實(shí)現(xiàn)無頭瀏覽器自動化吧2024-02-02
tensorflow實(shí)現(xiàn)測試時讀取任意指定的check point的網(wǎng)絡(luò)參數(shù)
今天小編就為大家分享一篇tensorflow實(shí)現(xiàn)測試時讀取任意指定的check point的網(wǎng)絡(luò)參數(shù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
Python Matplotlib 基于networkx畫關(guān)系網(wǎng)絡(luò)圖
這篇文章主要介紹了Python Matplotlib 基于networkx畫關(guān)系網(wǎng)絡(luò)圖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
opencv實(shí)現(xiàn)靜態(tài)手勢識別 opencv實(shí)現(xiàn)剪刀石頭布游戲
這篇文章主要為大家詳細(xì)介紹了opencv實(shí)現(xiàn)靜態(tài)手勢識別,opencv實(shí)現(xiàn)剪刀石頭布游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01
Python pandas實(shí)現(xiàn)excel工作表合并功能詳解
這篇文章主要介紹了Python pandas實(shí)現(xiàn)excel工作表合并功能以及相關(guān)實(shí)例代碼,需要的朋友們參考學(xué)習(xí)下。2019-08-08

