In [3]:
import pandas as pd
import numpy as np

In [4]:
train_df = pd.DataFrame({'col_1': [3, 2, 1, 0], 'col_2': ['a', 'b', 'c', 'd']})
test_df = pd.DataFrame({'col_1': [3, 2, 5], 'col_2': ['a', 'b', 'e']})

In [5]:
pd.get_dummies(train_df['col_2'])


Out[5]:
a b c d
0 1 0 0 0
1 0 1 0 0
2 0 0 1 0
3 0 0 0 1

In [6]:
dummy_columns = list(set(train_df['col_2']))

In [7]:
pd.get_dummies(test_df['col_2'])


Out[7]:
a b e
0 1 0 0
1 0 1 0
2 0 0 1

In [10]:
test_df_new, train_df_new = pd.get_dummies(test_df['col_2']).align(pd.get_dummies(train_df['col_2']), join='right', axis=1, fill_value=0)

In [11]:
test_df_new


Out[11]:
a b c d
0 1 0 0 0
1 0 1 0 0
2 0 0 0 0

In [ ]: