Saya memiliki dataframe dengan ~ 300K baris dan ~ 40 kolom. Saya ingin mencari tahu apakah ada baris yang berisi nilai null - dan letakkan baris 'null' ini ke dalam kerangka data terpisah sehingga saya bisa menjelajahinya dengan mudah.
Saya dapat membuat topeng secara eksplisit:
mask = False
for col in df.columns:
mask = mask | df[col].isnull()
dfnulls = df[mask]
Atau saya dapat melakukan sesuatu seperti:
df.ix[df.index[(df.T == np.nan).sum() > 1]]
Apakah ada cara yang lebih elegan untuk melakukannya (menemukan baris dengan nol di dalamnya)?
df[df.isnull().any(axis=1)]
bekerja tetapi melemparUserWarning: Boolean Series key will be reindexed to match DataFrame index.
. Bagaimana seseorang menulis ulang ini secara lebih eksplisit dan dengan cara yang tidak memicu pesan peringatan itu?df.loc[df.isnull().any(axis=1)]
.any()
dan.all()
bagus untuk kasus-kasus ekstrem, tetapi tidak ketika Anda sedang mencari sejumlah nilai null tertentu. Inilah cara yang sangat sederhana untuk melakukan apa yang saya yakin Anda minta. Ini sangat verbose, tetapi fungsional.Keluaran
Kemudian, jika Anda seperti saya dan ingin menghapus baris-baris itu, Anda cukup menulis ini:
Keluaran:
sumber