掌握pandas刪除指定值的行:詳解多種方法

一、基礎方法:使用條件語句

其中最基礎的方法是使用條件語句進行刪除,即使用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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-29 08:01
下一篇 2024-11-29 08:01

相關推薦

  • ArcGIS更改標註位置為中心的方法

    本篇文章將從多個方面詳細闡述如何在ArcGIS中更改標註位置為中心。讓我們一步步來看。 一、禁止標註智能調整 在ArcMap中設置標註智能調整可以自動將標註位置調整到最佳顯示位置。…

    編程 2025-04-29
  • 解決.net 6.0運行閃退的方法

    如果你正在使用.net 6.0開發應用程序,可能會遇到程序閃退的情況。這篇文章將從多個方面為你解決這個問題。 一、代碼問題 代碼問題是導致.net 6.0程序閃退的主要原因之一。首…

    編程 2025-04-29
  • Python創建分配內存的方法

    在python中,我們常常需要創建並分配內存來存儲數據。不同的類型和數據結構可能需要不同的方法來分配內存。本文將從多個方面介紹Python創建分配內存的方法,包括列表、元組、字典、…

    編程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • 使用Vue實現前端AES加密並輸出為十六進制的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進制。 一、AES加密介紹 AE…

    編程 2025-04-29
  • 用不同的方法求素數

    素數是指只能被1和自身整除的正整數,如2、3、5、7、11、13等。素數在密碼學、計算機科學、數學、物理等領域都有着廣泛的應用。本文將介紹幾種常見的求素數的方法,包括暴力枚舉法、埃…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • Python學習筆記:去除字符串最後一個字符的方法

    本文將從多個方面詳細闡述如何通過Python去除字符串最後一個字符,包括使用切片、pop()、刪除、替換等方法來實現。 一、字符串切片 在Python中,可以通過字符串切片的方式來…

    編程 2025-04-29
  • 用法介紹Python集合update方法

    Python集合(set)update()方法是Python的一種集合操作方法,用於將多個集合合併為一個集合。本篇文章將從以下幾個方面進行詳細闡述: 一、參數的含義和用法 Pyth…

    編程 2025-04-29

發表回復

登錄後才能評論