從 Pandas DataFrame 中刪除行列表


Python 中的 pandas 庫廣泛用於以表格資料結構的形式表示資料。資料集被組織成一個由行和列組成的二維矩陣。Pandas 庫提供了許多函式,可以幫助程式設計師透過提供有價值的數學見解來分析資料集。

表格資料結構稱為資料幀,可以使用 pandas 的 DataFrame() 函式生成。在本文中,我們將執行一個簡單的操作,即從 pandas 資料幀中刪除/丟棄多行。

首先,我們必須準備一個數據集,然後使用 pandas 的“DataFrame()”函式生成資料幀。讓我們從這裡開始 -

準備資料集

來自傳遞的資料集的資料將以行和列的形式排列。

  • 在這裡,我們將 pandas 庫匯入為“pd”。我們使用列表字典建立了資料集。

  • 每個鍵代表一個學生,該學生與表示在不同科目中獲得的分數的值列表相關聯。

  • 在此之後,我們使用 DataFrame() 函式生成了一個數據幀。我們沒有指定列名,但學生的姓名會自動獲取此資料幀的列位置。最重要的一步是資料幀索引的標記。我們透過傳遞一個包含不同科目的值的列表來指定行名。

示例

import pandas as pd
dataset = {"Aman":[98, 92, 88, 90, 91], "Raj":[78, 62, 90, 71, 45], "Saloni":[82, 52, 95, 98, 80],}
dataframe = pd.DataFrame(dataset,index=["Physics", "Chemistry", "Maths", "English", "Biology"])
print(dataframe)

輸出

             Aman  Raj  Saloni
Physics        98   78     82
Chemistry      92   62     52
Maths          88   90     95
English        90   71     98
Biology        91   45     80

透過索引值刪除行

為了刪除一行,我們將使用 pandas 的“drop()”方法。這是從資料幀中刪除行的有效且簡單的方法。以下是此方法的語法 -

dataframe.drop(labels=None, *, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')

我們不需要所有引數來啟動“drop”操作(大多數預設值就足夠了)。有兩種刪除行的方法:-

我們將指定需要刪除的每一行的索引值。

示例

以下是此方法的實現。這裡,

  • 在建立資料幀後,我們使用 drop() 方法從資料幀中刪除第 3 行和第 4 行。

  • 我們選擇了儲存在“dataframe”變數中的原始資料幀,並使用“dataframe.index[[]]”鎖定要刪除的相應行的索引值。

  • 將建立一個新的資料幀,其中包含剩餘的行。

import pandas as pd
dataset = {"Aman":[98, 92, 88, 90, 91], "Raj":[78, 62, 90, 71, 45], "Saloni":[82, 52, 95, 98, 80],}
dataframe = pd.DataFrame(dataset,index=["Physics", "Chemistry", "Maths", "English", "Biology"])
print(dataframe)
Drop_dataframe = dataframe.drop(dataframe.index[[2, 3]])
print("After dropping 3rd and 4th row")
print(Drop_dataframe)

輸出

           Aman  Raj  Saloni
Physics      98   78      82
Chemistry    92   62      52
Maths        88   90      95
English      90   71      98
Biology      91   45      80
After dropping 3rd and 4th row
           Aman  Raj  Saloni
Physics      98   78      82
Chemistry    92   62      52
Biology      91   45      80

透過標籤或行名刪除行

在這種技術中,我們使用要從資料幀中刪除的行(標籤)的確切名稱。我們將再次使用 drop() 方法來執行此技術。現在,

  • 我們使用相同的 drop() 方法從資料幀中刪除第 3 行和第 4 行,但這次我們使用了在構建資料幀時標記的行名。

  • 將建立一個新的資料幀,原始資料幀保持不變。

示例

import pandas as pd
dataset = {"Aman":[98, 92, 88, 90, 91], "Raj":[78, 62, 90, 71, 45], "Saloni":[82, 52, 95, 98, 80],}
dataframe = pd.DataFrame(dataset,index=["Physics", "Chemistry", "Maths", "English", "Biology"])
print(dataframe)
Drop_dataframe = dataframe.drop(["Maths", "English"])
print("After dropping 3rd and 4th row")
print(Drop_dataframe)

輸出

           Aman  Raj  Saloni
Physics      98   78      82
Chemistry    92   62      52
Maths        88   90      95
English      90   71      98
Biology      91   45      80
After dropping 3rd and 4th row
           Aman  Raj  Saloni
Physics      98   78      82
Chemistry    92   62      52
Biology      91   45      80

如果我們不想建立另一個數據幀,我們還可以包含“inplace”引數。此引數可以透過對其進行更改來修改當前資料幀。此引數的預設值為“False”。我們將把 inplace 引數的值設定為“True”。

使用索引切片

我們還可以使用索引切片刪除行列表。以下是如何操作的示例,

  • 在這裡,我們切片了索引並建立了一個用於刪除行的範圍。

  • 我們列印了原始資料幀,然後使用“dataframe.index[2:4]”方法設定從 2 到 3 的範圍,並使用“dataframe.drop()”方法刪除這些行。

  • 最後,將建立一個新的資料幀,其中包含剩餘的行。

示例

import pandas as pd
dataset = {"Aman":[98, 92, 88, 90, 91], "Raj":[78, 62, 90, 71, 45], "Saloni":[82, 52, 95, 98, 80],}
dataframe = pd.DataFrame(dataset,index=["Physics", "Chemistry", "Maths", "English", "Biology"])
print(dataframe)
drop_dataframe = dataframe.drop(dataframe.index[2:4])
print("After dropping 3rd and 4th row")
print(drop_dataframe)

輸出

            Aman  Raj  Saloni
Physics      98   78      82
Chemistry    92   62      52
Maths        88   90      95
English      90   71      98
Biology      91   45      80
After dropping 3rd and 4th row
             Aman  Raj  Saloni
Physics      98   78      82
Chemistry    92   62      52
Biology      91   45      80

結論

在本文中,我們介紹了 pandas 資料幀的基礎知識。我們瞭解了從資料幀中刪除多行的不同方法。我們討論了指定要刪除的行(即透過“索引值”和“行名”)的不同方法。最後,我們討論了一種簡單的索引切片方法。

更新於: 2023年5月5日

355 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告