с использованием np.intersect1d
df['column3'] = df.apply(lambda x: ' '.join(np.intersect1d(x['column1'].split(),x['column2'].split())), axis=1)
Вывод
column1 column2 column3
0 A girl is going to market girl market school girl market
1 A girl is going to school girl market school girl school
2 The sky is blue in color sky blue orange color blue color sky
, если порядок имеет значение
df['column3'] = df.apply(lambda x: ' '.join(np.array(x['column1'].split())[np.in1d(x['column1'].split(),x['column2'].split())]), axis=1)
Выход
column1 column2 column3
0 A girl is going to market girl market school girl market
1 A girl is going to school girl market school girl school
2 The sky is blue in color sky blue orange color sky blue color