ValueError: Cannot mask with non-boolean array containing NA / NaN values
エラーが発生したのは、DataFrame の列に欠損値(NA / NaN)が含まれているためです。str.contains() メソッドを使用してフィルタリングを行う際には、欠損値が含まれているとエラーが発生します。
このような場合、まず欠損値を除外するか、欠損値を適切に処理する必要があります。欠損値を除外するには、dropna() メソッドを使用します。また、欠損値を特定の値(例えば、空文字列)で置き換えることもできます。
例えば、欠損値を除外してからフィルタリングする場合、次のようにします:
python
import pandas as pd # 例としてDataFrameを作成する data = { "メーカー": ["Apple", "Samsung", "Sony", "その他", "Google", "その他", None], "価格": [1000, 800, 600, 500, 1200, 400, 300] } df = pd.DataFrame(data) # 欠損値を除外する df = df.dropna(subset=["メーカー"]) # "メーカー"列が"その他"を含む行を抽出する filtered_df = df[df["メーカー"].str.contains("その他")] print(filtered_df)
このコードでは、dropna() メソッドを使用して、"メーカー"列から欠損値を除外した後に、str.contains() メソッドを使用してフィルタリングを行っています。
もし欠損値を特定の値で置き換える場合、fillna() メソッドを使用して置き換えることができます。

ディスカッション
コメント一覧
まだ、コメントがありません