df1 = pd.DataFrame(np.array([['a', 5, 9], ['b', 4, 61], ['c', 24, 9]]),
    columns=['name', 'attr11', 'attr12'])
df2 = pd.DataFrame(np.array([['a', 5, 19], ['b', 14, 16], ['c', 4, 9]]),
    columns=['name', 'attr21', 'attr22'])
df3 = pd.DataFrame(np.array([['a', 15, 49], ['b', 4, 36], ['c', 14, 9]]),
    columns=['name', 'attr31', 'attr32'])
pd.merge(pd.merge(df1, df2, on='name'), df3, on='name')
панды, объединяющие несколько фреймов данных в столбцах