๐Ÿ€Zerve chosen as NCAA's Agentic Data Platform for 2026 Hackathonยท๐ŸงฎMeet the Zerve Team at Data Decoded Londonยท๐Ÿ“ˆWe're hiring โ€” awesome new roles just gone live!
Back
Pandas

Pandas Error Handling โ€” How to Handle Errors Gracefully

Answer

Pandas provides built-in error handling through the errors parameter in many functions ('raise', 'coerce', 'ignore'). For broader error handling, wrap pandas operations in try/except blocks. Use errors='coerce' to convert bad values to NaN, or errors='ignore' to skip the operation silently.

Why This Happens

Data pipelines break when they hit unexpected values. Instead of failing on the first bad row, you want to either skip bad values, convert them to NaN for later cleanup, or catch exceptions and handle them gracefully. This makes your code robust to messy real-world data.

Solution

The rule: use the errors parameter when available, wrap risky operations in try/except, and always have a fallback for when data is bad.

import pandas as pd

# โœ… Using errors parameter (built into many pandas functions)
df = pd.DataFrame({'val': ['1', '2', 'bad', '4']})

df['val'] = pd.to_numeric(df['val'], errors='coerce')   # bad -> NaN
df['val'] = pd.to_numeric(df['val'], errors='ignore')   # keeps original if fails
df['val'] = pd.to_numeric(df['val'], errors='raise')    # default, raises exception

# โœ… Try/except for operations without errors parameter
try:
    df = pd.read_csv('maybe_missing.csv')
except FileNotFoundError:
    df = pd.DataFrame()  # fallback to empty dataframe
except pd.errors.EmptyDataError:
    df = pd.DataFrame()  # file exists but is empty

# โœ… Catching multiple pandas-specific errors
from pandas.errors import ParserError, EmptyDataError

try:
    df = pd.read_csv('messy.csv')
except (ParserError, EmptyDataError) as e:
    print(f"Failed to read file: {e}")
    df = pd.DataFrame()

# โœ… Row-level error handling with apply
def safe_convert(x):
    try:
        return float(x)
    except:
        return None

df['val'] = df['val'].apply(safe_convert)

Better Workflow

Zerve's cell-by-cell execution lets you isolate and debug failing operations quickly โ€” you can re-run just the problematic cell with different error handling instead of restarting the whole pipeline.

Better workflow

Related Topics

Decision-grade data work

Explore, analyze and deploy your first project in minutes