Reviewed by Aditya Kumar Β· Last reviewed 2026-03-24
**E:** Read source (CSV, API, DB). **T:** dropna, cast types, filter, derive columns, validate. **L:** to_sql, to_parquet. Add: logging, error handling, idempotency (overwrite by date), incremental (filter by watermark)....
E: Read source (CSV, API, DB). T: dropna, cast types, filter, derive columns, validate. L: to_sql, to_parquet. Add: logging, error handling, idempotency (overwrite by date), incremental (filter by watermark).
# Extract
df = pd.read_csv(source) | pd.read_sql(query, conn)
# Transform
df = df.dropna(subset=['key']).astype(dtypes).query('amount>0')
df['derived'] = df['a'] + df['b']
# Load
df.to_sql('table', engine, if_exists='append', index=False)
# + validate schema, log row counts, handle duplicates
Red Flag: No idempotency or incremental. Pro-Move: 'We use max(updated_at) as watermark; MERGE in load for upsert.'
According to DataEngPrep.tech, this is one of the most frequently asked Python/Coding interview questions, reported at 1 company. DataEngPrep.tech maintains an editor-reviewed database of 1,863 data engineering interview questions across 7 categories.