21  Recipe: Convert Data Types

21.1 Task

Replace special missing markers and convert selected columns to numeric values.

import pandas as pd

numeric_columns = ["population", "income", "index"]

df[numeric_columns] = (
    df[numeric_columns]
    .replace({"*": pd.NA, "N/D": pd.NA, "": pd.NA})
    .apply(pd.to_numeric, errors="coerce")
)

21.2 Validation

print(df[numeric_columns].dtypes)
print(df[numeric_columns].isna().sum())

21.3 Things to remember

errors="coerce" converts invalid values to missing values. Always inspect how many values were converted.