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