stack
+ dropna
Создайте одну серию, отбросьте пропущенные значения и вызовите уникальную.
import pandas as pd
import numpy as np
df = pd.DataFrame({'Type_1': ['Grass', 'Fire', 'Steel', 'Ghost'],
'Type_2': [np.NaN, 'Water', 'Fire', 'Grass']})
df[['Type_1', 'Type_2']].stack().dropna().unique()
#array(['Grass', 'Fire', 'Water', 'Steel', 'Ghost'], dtype=object)