Pandas Pythonで作業中...
いくつかの欠損値を含むデータセットを使用していますが、欠損データのある行のみを含むデータフレームを返したいです。これを行う良い方法はありますか?
(これを行う私の現在の方法は、「欠損値のないデータフレームにどのインデックスがないかを確認し、それらのインデックスからdfを作成する」という非効率な方法です。)
any
axis=1
を使用して、行ごとに少なくとも1つのTrue
をチェックし、 boolean indexing でフィルタリングできます。
null_data = df[df.isnull().any(axis=1)]
Meterkの答えと同様に、
null_data = df[np.logical_or.reduce(df.isnull().values, axis=1)]
テスト
n = 2
df = pd.DataFrame({'a':np.tile([0,1,2,3,4,np.nan],n),
'b':np.tile([0,1,2,3,np.nan,5],n)})
x = df[np.logical_or.reduce(df.isnull().values,axis=1)]
y = df[df.isnull().any(axis=1)]
x.equals(y)