Страницы

Поиск по вопросам

четверг, 16 мая 2019 г.

Как преобразовать логические False, True в 1, 0?

Есть ли функция для преобразования булевых значений в числовые?
Только мне нужно, чтобы False -> 1, а True -> 0 В принципе можно и replace использовать, но хочется найти более красивый способ.


Ответ

Пример:
Исходный DataFrame:
In [19]: df = pd.DataFrame({'col':np.random.choice([True, False], 10)})
In [20]: df Out[20]: col 0 False 1 True 2 True 3 False 4 False 5 True 6 False 7 False 8 True 9 False
решение:
In [22]: df['col'] = (-df['col']).astype(np.int8)
In [23]: df Out[23]: col 0 1 1 0 2 0 3 1 4 1 5 0 6 1 7 1 8 0 9 1
In [24]: df.dtypes Out[24]: col int8 dtype: object
альтернативный вариант:
In [27]: df['col'] = (~df['col']).astype(np.uint8)
In [28]: df Out[28]: col 0 1 1 0 2 0 3 1 4 1 5 0 6 1 7 1 8 0 9 1

Комментариев нет:

Отправить комментарий