You can use the following methods to select rows with NaN values in pandas:

**Method 1: Select Rows with NaN Values in Any Column**

df.loc[df.isnull().any(axis=1)]

**Method 2: Select Rows with NaN Values in Specific Column**

**df.loc[df['this_column'].isnull()]**

The following examples show how to use each method in practice with the following pandas DataFrame:

import pandas as pd import numpy as np #create DataFrame df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], 'points': [18, np.NaN, 19, 14, 14, 11, 20, 28], 'assists': [5, 7, 7, 9, np.NaN, 9, 9, np.NaN], 'rebounds': [11, 8, 10, 6, 6, 5, 9, np.NaN]}) #view DataFrame print(df)

**Example 1: Select Rows with NaN Values in Any Column**

We can use the following syntax to select rows with NaN values in any column of the DataFrame:

#create new DataFrame that only contains rows with NaNs in any column df_nan_rows = df.loc[df.isnull().any(axis=1)] #view results print(df_nan_rows) team points assists rebounds 1 B NaN 7.0 8.0 4 E 14.0 NaN 6.0 7 H 28.0 NaN NaN

Notice that each row in the resulting DataFrame contains a NaN value in at least one column.

**Example 2: Select Rows with NaN Values in Specific Column**

We can use the following syntax to select rows with NaN values in the **assists** column of the DataFrame:

#create new DataFrame that only contains rows with NaNs in assists column df_assists_nans = df.loc[df['assists'].isnull()] #view results print(df_assists_nans) team points assists rebounds 4 E 14.0 NaN 6.0 7 H 28.0 NaN NaN

Notice that each row in the resulting DataFrame contains a NaN value in the **assists** column.

There is one row with a NaN value in the **points** column, but this row is not selected since it doesn’t have a NaN value in the **assists** column as well.

**Additional Resources**

The following tutorials explain how to perform other common tasks in pandas:

Pandas: How to Drop Rows with NaN Values

Pandas: How to Replace NaN Values with String

Pandas: How to Fill NaN Values with Mean