Select rows with NA values in any pandas DataFrame column

# Import libraries
import pandas as pd
import numpy as np

# Create sample dataframe
df = pd.DataFrame({'population':[2148000, np.nan, 861635, 232741, np.nan], 
                  'area_km':[105.4, 47.87, 240.6, np.nan, 78.26]},
                  index=['Paris', 'Lyon',  'Marseille', 'Lille', 'Strasbourg'])
df
population area_km
Paris 2148000.0 105.40
Lyon NaN 47.87
Marseille 861635.0 240.60
Lille 232741.0 NaN
Strasbourg NaN 78.26

Select rows that have at least one NA value

# Standard way
df[df.isnull().any(axis=1)]
population area_km
Lyon NaN 47.87
Lille 232741.0 NaN
Strasbourg NaN 78.26
# With .loc and lambda (useful for method chaining)
df.loc[lambda x: x.isnull().any(axis=1)]
population area_km
Lyon NaN 47.87
Lille 232741.0 NaN
Strasbourg NaN 78.26

Filter out rows with NA values

# Select rows that do not have any NA value
df.dropna()
population area_km
Paris 2148000.0 105.4
Marseille 861635.0 240.6