Вы можете использовать concat
и groupby
axis = 1
s=pd.concat([df1,df2],axis=1)
s.groupby(s.columns.values,axis=1).mean()
Out[116]:
C1 C2 C3 C4 C5
0 0.5 0.0 0.0 1.0 1.0
1 0.5 0.0 0.0 1.0 1.0
Хорошая альтернатива от @ cᴏʟᴅsᴘᴇᴇᴅ
s.groupby(level=0,axis=1).mean()
Out[117]:
C1 C2 C3 C4 C5
0 0.5 0.0 0.0 1.0 1.0
1 0.5 0.0 0.0 1.0 1.0