Используйте регулярное выражение для нормализации ваших столбцов:
df.columns = df.columns.str.extract(r'(\w+)\.?', expand=False)
Использование groupby
+ first
:
df.groupby(level=0, axis=1).first()
col1
0 1.0
1 2.0
Вы также можете groupby
regex
результат:
df.groupby(df.columns.str.extract(r'(\w+)\.?', expand=False), axis=1).first()