Python數(shù)據(jù)分析之?Pandas?Dataframe修改和刪除及查詢(xún)操作
一、查詢(xún)操作
可以使用Dataframe的index屬性和columns屬性獲取行、列索引。
import pandas as pd
data = {"name": ["Alice", "Bob", "Cindy", "David"], "age": [25, 23, 28, 24], "gender": ["woman", "man", "woman", "man"]}
df = pd.DataFrame(data)
print(df.index)
print(df.columns)
df
結(jié)果輸出如下:

元素的查詢(xún)
DataFrame 元素查詢(xún)有一下幾種查詢(xún)方式:使用[]切片、loc方法、iloc方法、at方法、iat方法等,下面分別介紹一下。
使用[]切片:
和Series數(shù)據(jù)結(jié)果一樣,Dataframe也支持使用[]進(jìn)行切片,使用方式也類(lèi)似,通過(guò)行、列的下標(biāo)或名稱(chēng)進(jìn)行指定位置元素的查詢(xún)。
例如:
# 獲取第0行數(shù)據(jù) df[0:1] # 獲取第2-4行數(shù)據(jù)(不包括4) df[2:4] # 獲取某一列 df.name # df["name"] # 獲取某幾列 df[["name", "gender"]] # 獲取指定行指定列 df[2:4][["name", "gender"]]
通過(guò)loc方法和iloc方法:
其中l(wèi)oc方法是以行索引的名稱(chēng)和列索引的名稱(chēng)作為參數(shù)使用,iloc方法是以行索引的位置和列索引的位置作為參數(shù)使用,具體使用方式如下:
# 獲取某行 df.loc[1] df.iloc[1] # 獲取多行 df.loc[1:3] df.iloc[1:3] # 獲取某列 df.loc[:, "name"] df.iloc[:, 0] # 獲取多列 df.loc[:, ["name","gender"]] df.iloc[:, [0,2]]
除了上面這些, 這里有一點(diǎn)需要注意一下,就是使用loc方法行索引參數(shù)為區(qū)間時(shí),區(qū)間前后都為閉區(qū)間;而iloc為前閉后開(kāi)區(qū)間。
通過(guò)at方法和iat方法:
at和iat的使用方法與loc和iloc類(lèi)似,不同的是,at和iat只能訪問(wèn)單個(gè)元素,不能訪問(wèn)多個(gè)元素,但是查詢(xún)速度比loc和iloc更快一些,具體使用如下:
# 查詢(xún)index為0列名為name的元素 df.at[0, "name"] # 查詢(xún)第2行第1列的元素 df.iat[2,1]
說(shuō)完Dataframe的查詢(xún)操作,這篇文章就來(lái)介紹一下Dataframe數(shù)據(jù)的修改及刪除操作。
二、修改操作
行列索引的修改
Dataframe對(duì)象提供了rename()方法修改行索引、列索引,默認(rèn)修改行索引,可以指定columns參數(shù)修改列索引,
具體使用方法如下:

# 修改指定行索引
df.rename({1:"one", 2:"two"}, inplace=True)
# 修改指定列索引
df.rename(columns={"city": "address"}, inplace=True)
df結(jié)果輸出如下:

參數(shù)inplace=True表示在原來(lái)的 DataFrame 上進(jìn)行修改。
元素值的修改
上面查詢(xún)操作說(shuō)到說(shuō)到可以通過(guò)loc、iloc、at、iat等方法獲取指定位置的值,修改其實(shí)也是通過(guò)這些方法先指定某個(gè)位置,然后進(jìn)行賦值即可修改,例如:
# 修改1-2行age和city列的數(shù)據(jù) df.loc[1:2, ["age","city"]] = [["22", "北京"],["21", "濟(jì)南"]] # 修改gender列 man-->男 df.loc[df["gender"]=="man", "gender"] = "男" df
輸出結(jié)果如下:

三、行和列的刪除操作
DataFrame提供了drop()方法進(jìn)行行和列的刪除操作。
具體用法和參數(shù)如下:
df.drop(labels=None, axis=0, index=None, columns=None, inplace=False)
- labels:指定要?jiǎng)h除的行或列,可以使用列表指定多個(gè)行/列索引
- axis:取值為0和1,代表行和列,默認(rèn)為0,表示要?jiǎng)h除的是行,設(shè)置為1表示刪除列
- index:指定要?jiǎng)h除的行,可以使用列表指定多個(gè)行索引
- columns:指定要?jiǎng)h除的列,同樣可以使用列表指定多個(gè)列索引
- inplace:默認(rèn)為False,設(shè)置為T(mén)rue表示在原 DataFrame 上進(jìn)行修改
具體通過(guò)代碼看下:
# 刪除單行 df.drop(4, inplace=True) # 刪除多行 df.drop([1,3], inplace=True) # 刪除多列 df.drop(["gender","city"], axis=1, inplace=True) # 或 df.drop(columns=["genger","city"], inplace=True) df
到此這篇關(guān)于Python數(shù)據(jù)分析之 Pandas Dataframe修改和刪除及查詢(xún)操作的文章就介紹到這了,更多相關(guān)Pandas Dataframe修改和刪除內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中實(shí)現(xiàn)對(duì)Timestamp和Datetime及UTC時(shí)間之間的轉(zhuǎn)換
這篇文章主要介紹了Python中實(shí)現(xiàn)對(duì)Timestamp和Datetime及UTC時(shí)間之間的轉(zhuǎn)換,例子則主要針對(duì)Ubuntu等類(lèi)UNIX系統(tǒng),需要的朋友可以參考下2015-04-04
python在屏幕上點(diǎn)擊特定按鈕或圖像效果實(shí)例
這篇文章主要給大家介紹了關(guān)于python在屏幕上點(diǎn)擊特定按鈕或圖像效果的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-09-09
Python urllib request模塊發(fā)送請(qǐng)求實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Python urllib request模塊發(fā)送請(qǐng)求實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
python的簡(jiǎn)單四則運(yùn)算語(yǔ)法樹(shù)可視化
這篇文章主要介紹了python的簡(jiǎn)單四則運(yùn)算語(yǔ)法樹(shù)可視化,這篇文章的內(nèi)容也很簡(jiǎn)單,就是給定一個(gè)四則運(yùn)算的表達(dá)式,畫(huà)出它的語(yǔ)法樹(shù),需要的朋友可以參考下2023-04-04
python求列表對(duì)應(yīng)元素的乘積和的實(shí)現(xiàn)
這篇文章主要介紹了python求列表對(duì)應(yīng)元素的乘積和的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
解決Tensorboard可視化錯(cuò)誤:不顯示數(shù)據(jù) No scalar data was found
今天小編就為大家分享一篇解決Tensorboard可視化錯(cuò)誤:不顯示數(shù)據(jù) No scalar data was found,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02

