Pandas DataFrameから特定の列にNaN値が含まれる行を削除する方法
PandasはPythonのデータ分析ライブラリで、大量のデータを効率的に処理するための多くの機能を提供しています。ここでは、DataFrameから特定の列に含まれるNaN(Not a Number)値を持つ行を削除する方法を学びます。
方法1: dropna() メソッドを使用する
最も簡単な方法は、dropna()
メソッドを使用することです。このメソッドは、NaN値を含む行や列を削除することができます。特定の列に対してのみNaN値のチェックを行いたい場合は、subset
引数を使用します。
import pandas as pd import numpy as np # サンプルデータの作成 data = { 'A': [1, 2, np.nan, 4, 5], 'B': ['a', 'b', 'c', np.nan, 'e'] } df = pd.DataFrame(data) # 'A' 列にNaNが含まれる行を削除 df_cleaned = df.dropna(subset=['A']) print(df_cleaned)
方法2: query() メソッドを使用する
条件式を用いてNaNではない行だけを選択することもできます。これには query()
メソッドを使用します。
# 'A' 列でNaNではない行だけを選択 df_cleaned_query = df.query('A == A') print(df_cleaned_query)
方法3: ブールインデックスを使用する
ブールインデックスを使用して、指定した列がNaNでない行だけをフィルタリングすることも可能です。これは直感的で、複雑な条件にも対応しやすい方法です。
# 'A' 列がNaNでない行だけを抽出 df_cleaned_bool = df[df['A'].notna()] print(df_cleaned_bool)
以上の方法を用いることで、Pandas DataFrameから特定の列にNaN値が含まれる行を効率的に削除することができます。状況に応じて最適な方法を選択してください。