How to pass another entire column as argument to pandas fillna()
You could do
df.Cat1 = np.where(df.Cat1.isnull(), df.Cat2, df.Cat1)
The overall construct on the RHS uses the ternary pattern from the pandas
cookbook (which it pays to read in any case). It's a vector version of a? b: c
.