Имам рамка за данни с липсващи стойности в някои клетки. Искам да запазя редовете, които имат нули във всяка колона. Това е обратното на pandas.DataFrame.dropna()
.
import pandas as pd
import numpy as np
df = pd.DataFrame({"a": [1,2], "b": [np.nan, 4]})
df
a b
0 1 NaN
1 2 4.0
желания резултат:
a b
1 2 4.0
Бих искал да го направя в стил, свързан с метода, така че нещо подобно би било идеално:
df.loc[lambda x: ...]
df.keepna(how="any") # keepna() doesn"t exist
Отговори:
1 за отговор № 1Можете да създадете булев филтър с df.isnull().any(1)
(ако редът има липсваща стойност):
df = pd.DataFrame({"a": [1,2], "b": [np.nan, 4]})
df[df.isnull().any(1)]
# a b
#0 1 NaN
Или по друг начин: df[~df.notnull().all(1)]
.