Есть ли функция для преобразования булевых значений в числовые?
Только мне нужно, чтобы 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
Комментариев нет:
Отправить комментарий