從 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 資料幀的基礎知識。我們瞭解了從資料幀中刪除多行的不同方法。我們討論了指定要刪除的行(即透過“索引值”和“行名”)的不同方法。最後,我們討論了一種簡單的索引切片方法。