Ravindra BagaleCourses & study guides मराठी Track your progress

40. Data Preprocessing for Machine Learning (Missing Values, Scaling, Encoding)

40.4 Simple Encoding (get_dummies)

Why. Models need numbers. “Pune” is text. Encoding turns categories into columns or codes.

What. Beginner-friendly: pandas.get_dummies (one-hot style) for a few cities. Each city becomes a 0/1 column. For many categories, other encoders exist later — start simple.

How.

One-hot a city column

  1. Keep a small list of cities.
  2. Call get_dummies.
  3. Align train/test columns (reindex) so test has the same dummy columns as train.
import pandas as pd

train = pd.DataFrame({"city": ["Pune", "Nashik", "Pune", "Mumbai"], "litres": [120, 90, 150, 200]})
test = pd.DataFrame({"city": ["Nashik", "Pune"], "litres": [100, 130]})

train_X = pd.get_dummies(train, columns=["city"])
test_X = pd.get_dummies(test, columns=["city"])
test_X = test_X.reindex(columns=train_X.columns, fill_value=0)
print(train_X)
print(test_X)

What you should see. Columns like city_Pune. Test rows line up with train columns even if a city is missing in that batch.

Fictional data

City lists are teaching samples, not a live warehouse extract.