Вы можете сделать что-то вроде этого:
from pandas import DataFrame as df
columns = ['feature1', 'feature2', 'feature3']
data = [[123, 1.07, 1],
[231, 2.08, 3],
[122, 'ab', 4],
[111, 3.04, 6],
[555, 'cde', 8]]
df_ = df(data, columns=columns)
types = []
for k in df_:
a = set(type(m) for m in df_[k])
if len(a) > 1:
types.append({k: 'object'})
else:
types.append({k: str(list(a)[0].__name__)})
print(types)
Вывод:
[{'feature1': 'int'}, {'feature2': 'object'}, {'feature3': 'int'}]