pandas の full outer join

df = pd.DataFrame(np.random.randint(0,100,size=(3, 4)), columns=list('ABCD'))

df['_index'] = 1

pd.merge(df[['_index', 'A']], df[['_index','B']], how='outer', on='_index')


df.drop(columns=['_index'], inplace=True)

stackoverflow.com