Python數據分析之 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

結果輸出如下:

元素的查詢

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

使用[]切片:

和Series數據結果一樣,Dataframe也支持使用[]進行切片,使用方式也類似,通過行、列的下標或名稱進行指定位置元素的查詢。

例如:

# 獲取第0行數據
df[0:1]
# 獲取第2-4行數據(不包括4)
df[2:4]
# 獲取某一列
df.name  # df["name"]
# 獲取某幾列
df[["name", "gender"]]
# 獲取指定行指定列
df[2:4][["name", "gender"]]

通過loc方法和iloc方法:

其中loc方法是以行索引的名稱和列索引的名稱作為參數使用,iloc方法是以行索引的位置和列索引的位置作為參數使用,具體使用方式如下:

# 獲取某行
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]]

除瞭上面這些, 這裡有一點需要註意一下,就是使用loc方法行索引參數為區間時,區間前後都為閉區間;而iloc為前閉後開區間。

通過at方法和iat方法:

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

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

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

二、修改操作

行列索引的修改

Dataframe對象提供瞭rename()方法修改行索引、列索引,默認修改行索引,可以指定columns參數修改列索引,

具體使用方法如下:

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

結果輸出如下:

參數inplace=True表示在原來的 DataFrame 上進行修改。

元素值的修改

上面查詢操作說到說到可以通過loc、iloc、at、iat等方法獲取指定位置的值,修改其實也是通過這些方法先指定某個位置,然後進行賦值即可修改,例如:

# 修改1-2行age和city列的數據
df.loc[1:2, ["age","city"]] = [["22", "北京"],["21", "濟南"]]
# 修改gender列 man-->男
df.loc[df["gender"]=="man", "gender"] = "男"
df

輸出結果如下:

三、行和列的刪除操作

DataFrame提供瞭drop()方法進行行和列的刪除操作。

具體用法和參數如下:

df.drop(labels=None, axis=0, index=None, columns=None, inplace=False)
  • labels:指定要刪除的行或列,可以使用列表指定多個行/列索引
  • axis:取值為0和1,代表行和列,默認為0,表示要刪除的是行,設置為1表示刪除列
  • index:指定要刪除的行,可以使用列表指定多個行索引
  • columns:指定要刪除的列,同樣可以使用列表指定多個列索引
  • inplace:默認為False,設置為True表示在原 DataFrame 上進行修改

具體通過代碼看下:

# 刪除單行
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

到此這篇關於Python數據分析之 Pandas Dataframe修改和刪除及查詢操作的文章就介紹到這瞭,更多相關Pandas Dataframe修改和刪除內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: