溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python數(shù)據(jù)分析之Pandas?Dataframe怎么修改、刪除及查詢

發(fā)布時(shí)間:2022-05-23 09:13:54 來源:億速云 閱讀:375 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Python數(shù)據(jù)分析之Pandas Dataframe怎么修改、刪除及查詢”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“Python數(shù)據(jù)分析之Pandas Dataframe怎么修改、刪除及查詢”文章能幫助大家解決問題。

    一、查詢操作

    可以使用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é)果輸出如下:

    Python數(shù)據(jù)分析之Pandas?Dataframe怎么修改、刪除及查詢

    元素的查詢

    DataFrame 元素查詢有一下幾種查詢方式:使用[]切片、loc方法、iloc方法、at方法、iat方法等,下面分別介紹一下。

    使用[]切片:

    和Series數(shù)據(jù)結(jié)果一樣,Dataframe也支持使用[]進(jìn)行切片,使用方式也類似,通過行、列的下標(biāo)或名稱進(jì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"]]

    通過loc方法和iloc方法:

    其中l(wèi)oc方法是以行索引的名稱和列索引的名稱作為參數(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為前閉后開區(qū)間。

    通過at方法和iat方法:

    at和iat的使用方法與loc和iloc類似,不同的是,at和iat只能訪問單個(gè)元素,不能訪問多個(gè)元素,但是查詢速度比loc和iloc更快一些,具體使用如下:

    # 查詢index為0列名為name的元素
    df.at[0, "name"]
    # 查詢第2行第1列的元素
    df.iat[2,1]

    說完Dataframe的查詢操作,這篇文章就來介紹一下Dataframe數(shù)據(jù)的修改及刪除操作。

    二、修改操作

    行列索引的修改

    Dataframe對(duì)象提供了rename()方法修改行索引、列索引,默認(rèn)修改行索引,可以指定columns參數(shù)修改列索引,

    具體使用方法如下:

    Python數(shù)據(jù)分析之Pandas?Dataframe怎么修改、刪除及查詢

    # 修改指定行索引
    df.rename({1:"one", 2:"two"}, inplace=True)
    # 修改指定列索引
    df.rename(columns={"city": "address"}, inplace=True)
    df

    結(jié)果輸出如下:

    Python數(shù)據(jù)分析之Pandas?Dataframe怎么修改、刪除及查詢

    參數(shù)inplace=True表示在原來的 DataFrame 上進(jìn)行修改。

    元素值的修改

    上面查詢操作說到說到可以通過loc、iloc、at、iat等方法獲取指定位置的值,修改其實(shí)也是通過這些方法先指定某個(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é)果如下:

    Python數(shù)據(jù)分析之Pandas?Dataframe怎么修改、刪除及查詢

    三、行和列的刪除操作

    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è)置為True表示在原 DataFrame 上進(jìn)行修改

    具體通過代碼看下:

    # 刪除單行
    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怎么修改、刪除及查詢”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI