檢查給定列是否存在於 Pandas DataFrame 中


Pandas 提供了各種資料結構,例如 Series 和 DataFrame,以靈活高效的方式處理資料。在資料分析任務中,通常需要檢查特定列是否存在於 DataFrame 中。這對於過濾、排序和合並資料,以及處理大型資料集時的錯誤和異常非常有用。

在本教程中,我們將探討幾種檢查給定列是否存在於 Pandas DataFrame 中的方法。我們將討論每種方法的優缺點,並提供如何在實踐中使用它們的示例。閱讀完本文後,您將清楚地瞭解如何在 Pandas DataFrame 中檢查列是否存在,並能夠根據您的具體需求選擇最佳方法。

方法 1:使用 "in" 運算子

檢查列是否存在於 DataFrame 中最直接的方法是使用 **"in"** 運算子。"in" 運算子檢查給定元素是否存在於容器中。對於 DataFrame 而言,容器是 DataFrame 的列名。

示例

import pandas as pd
# Create a sample DataFrame
df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'],
   'Age': [25, 30, 35],
   'Gender': ['Female', 'Male', 'Male']})
# Check if 'Name' column is present in the DataFrame using 'in' operator
if 'Name' in df:
   print("Column 'Name' is present in the DataFrame")
else:
   print("Column 'Name' is not present in the DataFrame") 

輸出

實現上述程式碼行後,您將獲得以下輸出:

Column 'Name' is present in the DataFrame

在這個示例中,我們建立了一個包含三列的 DataFrame:“姓名”、“年齡”和“性別”。然後,我們使用 "in" 運算子檢查“姓名”列是否存在於 DataFrame 中。由於“姓名”列存在於 DataFrame 中,因此輸出為“'姓名'列存在於 DataFrame 中”。

優點

  • 簡單直觀

  • 易於記憶和使用

  • 適用於單個列名

缺點

  • 在大型資料集上使用時可能較慢

  • 一次只能檢查單個列名

  • 不適合同時檢查多列

方法 2:使用 "columns" 屬性

另一種檢查給定列是否存在於 Pandas DataFrame 中的方法是使用 "columns" 屬性。"columns" 屬性返回 DataFrame 中存在的列名列表。我們可以檢查列名是否存在於此列表中。

示例

這是一個示例

import pandas as pd


# Create a sample DataFrame
df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'],
  'Age': [25, 30, 35],
  'Gender': ['Female', 'Male', 'Male']})


# Check if 'Name' column is present in the DataFrame using 'columns' attribute
if 'Name' in df.columns:
   print("Column 'Name' is present in the DataFrame") 
else:
   print("Column 'Name' is not present in the DataFrame")

輸出

實現上述程式碼行後,您將獲得以下輸出:

Column 'Name' is present in the DataFrame

在這個示例中,我們使用 "columns" 屬性獲取 DataFrame 中的列名列表。然後,我們檢查“姓名”列是否存在於此列表中。由於“姓名”列存在於 DataFrame 中,因此輸出為“'姓名'列存在於 DataFrame 中”。

優點

  • 快速高效

  • 適用於單個列名

  • 可用於檢查 DataFrame 中的所有列名

缺點

  • 不適合同時檢查多列

  • 無法處理列名不存在時的錯誤或異常

方法 3:使用 "isin" 方法

"isin" 方法是 Pandas 中另一個有用的方法,用於檢查給定列是否存在於 DataFrame 中。"isin" 方法檢查 DataFrame 的每個元素是否包含在一個值列表中。我們可以使用此方法檢查特定列名是否存在於 DataFrame 的列名列表中。

示例

這是一個示例:

import pandas as pd
# Create a sample DataFrame
df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'],
 'Age': [25, 30, 35],
 'Gender': ['Female', 'Male', 'Male']})
# Check if 'Name' column is present in the DataFrame using 'isin()' method
if df.columns.isin(['Name']).any():
 print("Column 'Name' is present in the DataFrame")
else:
 print("Column 'Name' is not present in the DataFrame") 

輸出

實現上述程式碼行後,您將獲得以下輸出:

Column 'Name' is present in the DataFrame

在這個示例中,我們使用 'isin()' 方法檢查“姓名”列是否存在於 DataFrame 中。我們將包含列名“姓名”的列表傳遞給 'isin()' 方法,該方法返回一個布林陣列。我們使用 'any()' 方法檢查布林陣列中的任何值是否為 True。由於“姓名”列存在於 DataFrame 中,因此輸出為“'姓名'列存在於 DataFrame 中”。

優點

  • 可用於同時檢查多個列名

  • 返回一個布林陣列,可用於進一步操作

  • 易於記憶和使用

缺點

  • 在大型資料集上使用時可能較慢

  • 僅限於檢查列名,無法處理其他條件

  • 需要將列名列表作為引數傳遞

方法 4:使用 "try-except" 塊

在 Python 中,我們可以使用 "try-except" 塊來處理異常。我們可以使用此塊嘗試訪問 DataFrame 的列,並在列不存在時處理異常。

示例

這是一個示例

import pandas as pd


# Create a sample DataFrame
df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'Gender': ['Female', 'Male', 'Male']})


# Check if 'Name' column is present in the DataFrame using 'try-except' block
try:
   df['Name']
   print("Column 'Name' is present in the DataFrame")


except KeyError:


   print("Column 'Name' is not present in the DataFrame")

輸出

實現上述程式碼行後,您將獲得以下輸出:

Column 'Name' is present in the DataFrame

在這個示例中,我們使用 'try-except' 塊嘗試訪問 DataFrame 的“姓名”列。如果列存在,“try”塊將成功執行並列印“'姓名'列存在於 DataFrame 中”。如果列不存在,“except”塊將處理 KeyError 異常並列印“'姓名'列不存在於 DataFrame 中”。

優點

  • 允許處理列名不存在時的異常

  • 可用於檢查單個或多個列名

  • 適用於檢查列名以及其他條件

缺點

  • 比其他方法慢

  • 需要處理異常,使用起來可能更復雜。

  • 不適合一次檢查 DataFrame 中的所有列名。

結論

在本教程中,我們探討了幾種檢查給定列是否存在於 Pandas DataFrame 中的方法。這些方法包括使用 "in" 運算子、"columns" 屬性、"isin()" 方法和 "try-except" 塊。每種方法都有其自身的優缺點,我們可以根據任務的具體需求選擇合適的方法。

更新於:2024年2月22日

3K+ 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告