一、基礎方法:使用條件語句
其中最基礎的方法是使用條件語句進行刪除,即使用DataFrame的loc方法進行切片操作,如下:
import pandas as pd data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 'age': [25, 32, 18, 47], 'gender': ['F', 'M', 'M', 'M'], 'score': [70, 82, 65, 90]} df = pd.DataFrame(data) # 刪除年齡小於20歲的行 df = df.loc[df['age'] >= 20]
以上代碼即刪除了年齡小於20歲的行,返回結果如下:
name age gender score 0 Alice 25 F 70 1 Bob 32 M 82 3 David 47 M 90
這種方法簡單易懂,但是如果要刪除多個條件的行比較麻煩,需要使用多次loc操作。
二、使用query方法
query方法是pandas提供的比較方便的篩選方法,可以一次性完成多重篩選,如下所示:
import pandas as pd data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 'age': [25, 32, 18, 47], 'gender': ['F', 'M', 'M', 'M'], 'score': [70, 82, 65, 90]} df = pd.DataFrame(data) # 刪除年齡小於20歲或分數小於70分的行 df = df.query('age >= 20 and score >= 70')
以上代碼即刪除了年齡小於20歲且分數小於70分的行,返回結果如下:
name age gender score 0 Alice 25 F 70 1 Bob 32 M 82 3 David 47 M 90
需要注意的是,query方法中的查詢條件需要用單引號或雙引號進行引用。
三、使用isin方法
isin方法是用來篩選某一列中是否包含指定值的方法,可以用來快速刪除指定值的行,如下所示:
import pandas as pd data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 'age': [25, 32, 18, 47], 'gender': ['F', 'M', 'M', 'M'], 'score': [70, 82, 65, 90]} df = pd.DataFrame(data) # 刪除性別為M的行 df = df[~df['gender'].isin(['M'])]
以上代碼即刪除了性別為M的行,返回結果如下:
name age gender score 0 Alice 25 F 70
需要注意的是,在使用isin方法時,需要使用波浪線(~)將結果取反,才能刪除指定值的行。
四、使用drop方法
drop方法是pandas提供的刪除行或列的方法,需要傳遞刪除行或列的索引或名稱,例如:
import pandas as pd data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 'age': [25, 32, 18, 47], 'gender': ['F', 'M', 'M', 'M'], 'score': [70, 82, 65, 90]} df = pd.DataFrame(data) # 刪除索引為1和2的行 df = df.drop([1, 2])
以上代碼即刪除了索引為1和2的行,返回結果如下:
name age gender score 0 Alice 25 F 70 3 David 47 M 90
需要注意的是,在使用drop方法時,需要使用inplace參數將結果保存到原DataFrame中。
五、使用布爾索引
布爾索引是一種用來篩選數據的方法,基於條件語句(如等於、大於等),返回一個布爾值的Series或DataFrame,可以用來刪除指定值的行,如下所示:
import pandas as pd data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 'age': [25, 32, 18, 47], 'gender': ['F', 'M', 'M', 'M'], 'score': [70, 82, 65, 90]} df = pd.DataFrame(data) # 刪除性別為M的行 df = df[df['gender'] != 'M']
以上代碼即刪除了性別為M的行,返回結果如下:
name age gender score 0 Alice 25 F 70
需要注意的是,在布爾索引中,可以使用&(and)和|(or)運算符,進行多條件的篩選。
總結
本文介紹了pandas中多種刪除指定值的行的方法,包括使用條件語句、query方法、isin方法、drop方法和布爾索引,每種方法都有其適用範圍和注意事項,需要根據數據情況和需求進行選擇。需要注意的是,在使用刪除方法時,尤其是刪除操作不可逆,需要謹慎處理,以免誤刪數據。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/189226.html