特定の列の値がNaNであるPandas DataFrameの行を削除する方法【Python 3】

PYTHON3 チュートリアル

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値が含まれる行を効率的に削除することができます。状況に応じて最適な方法を選択してください。

購読
通知
0 Comments
Inline Feedbacks
View all comments