#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 |