df = pd.DataFrame([['001', 'a', 1, 10, 100, 1000], ['002', 'b', 2, 20, 200,
    2000]], columns=['id', 'name', 'c1', 'c2', 'c2', 'c3'], index=list('AB'))
df2 = df.transpose()
df2 = df2.groupby(by=df2.index, axis=0).apply(lambda g: g.mean() if
    isinstance(g.iloc[0, 0], numbers.Number) else g.iloc[0])
df3 = df2.transpose()
df3
df
Pandas: Mean of columns with the same names