dropnaメソッドは、欠損値を含む行や列を除外することができるPandasのDataFrameのメソッドです。具体的には、NaNまたはNoneが含まれる行や列を取り除くことができます。
使い方
以下は、基本的な使い方です。
import pandas as pd # データフレームの作成 df = pd.DataFrame({'col1': [1, 2, None, 4], 'col2': [None, 6, 7, 8], 'col3': [9, 10, 11, 12]})print(df) col1 col2 col3 0 1.0 NaN 9 1 2.0 6.0 10 2 NaN 7.0 11 3 4.0 8.0 12# 欠損値を含む行を削除 df.dropna()col1 col2 col3 1 2.0 6.0 10 3 4.0 8.0 12# 欠損値を含む列を削除 df.dropna(axis=1)col3 0 9 1 10 2 11 3 12
上記の例では、DataFrame df から欠損値を含む行を削除しています。また、axis=1を指定することで、欠損値を含む列を削除することができます。
dropnaメソッドには、他にもいくつかの引数があります。
how: 削除の条件を指定することができます。allを指定すると、行または列のすべての要素がNaNまたはNoneである場合に、その行または列を削除します。anyを指定すると、行または列に1つでもNaNまたはNoneが含まれる場合に、その行または列を削除します。thresh: 行または列に欠損値がいくつ以下含まれる場合に、その行または列を削除するかを指定できます。
以下は、howおよびthreshを使用した例です。
# データフレームの作成 df = pd.DataFrame({'col1': [1, 2, None, 4], 'col2': [None, 6, 7, 8], 'col3': [9, None, None, None]})print(df) col1 col2 col3 0 1.0 NaN 9.0 1 2.0 6.0 NaN 2 NaN 7.0 NaN 3 4.0 8.0 NaN# すべての要素がNaNまたはNoneの行を削除 df.dropna(how='all')col1 col2 col3 0 1.0 NaN 9.0 1 2.0 6.0 NaN 2 NaN 7.0 NaN 3 4.0 8.0 NaN# 欠損値が2つ以下の行を削除 df.dropna(thresh=2)col1 col2 col3 0 1.0 NaN 9.0 1 2.0 6.0 NaN 3 4.0 8.0 NaN
上記の例では、すべての要素がNaNまたはNoneの行を削除する場合や、欠損値が2つ以下の行を削除する場合を示しています。
注意点
dropnaメソッドは、DataFrameオブジェクト自体を変更するのではなく、新しいDataFrameオブジェクトを返します。したがって、データの欠損値を削除したい場合は、削除した結果を再代入する必要があります。
![バイオインフォ 道場 [bioinfo-Dojo]](https://bioinfo-dojo.net/wp-content/uploads/2016/03/some_object_luca-bravo-alS7ewQ41M8-unsplash.jpg)

