Немного другой подход. Во-первых, dtypes фрейма данных можно вернуть с помощью df.dtypes
, что дает ряд панд, который выглядит следующим образом:
a int64
b bool
c object
dtype: object
Во-вторых, мы могли бы заменить bool
на тип int, используя replace
,
df.dtypes.replace('bool', 'int8')
, это дает
a int64
b int8
c object
dtype: object
Наконец, pandas seires - это, по сути, словарь, который может быть передан в pd.DataFrame.astype
.
Мы могли бы написать это в виде единого документа,
df.astype(df.dtypes.replace('bool', 'int8'))