Первое замечание Dtypes Pandas не обязательно отражают встроенные типы Python. Например, нет такой вещи как str
dtype. В Pandas строки хранятся в серии object
dtype, которые представляют указатели на произвольные объекты.
Вы можете использовать понимание списка и назначить столбцы:
df.columns = [f'{col} ({col_type})' for col, col_type in zip(df, df.dtypes)]
print(df)
animal (object) age (int64)
0 alligator 12
1 bee 13
2 falcon 1
3 lion 15
4 monkey 14
5 parrot 44
6 shark 100
7 whale 200
8 zebra 14
Для вашего случая использования достаточно просто набрать df.dtypes
.