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

https://launchpad.net/ubuntu/bionic/+source/xserver-xorg-video-dummy

sudo apt-get install xserver-xorg-video-dummy

Как использовать: https://launchpad.net/ убунт / бионический / + исходная / Xserver-Xorg-видео-фиктивная

1
задан 1 June 2018 в 01:12

1 ответ

Пример:

Исходный 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
4
ответ дан 6 June 2018 в 11:58
  • 1
    спасибо большое! – Denis Novik 31 May 2018 в 10:30
  • 2
    @DenisNovik, был рад помочь :) – MaxU 31 May 2018 в 10:31
  • 3
    А минус в -df['col'] обязательный для этой магии? :) – gil9red 31 May 2018 в 11:16
  • 4
    @ gil9red: автор хочет обратить False / True: False -> 1, True -> 0 (обычно обратные значения). Хотя ~ более читаема была бы здесь, чем -. – jfs 31 May 2018 в 13:13
  • 5
    возможно без знака тип тут подошёл бы: np.uint8 – jfs 31 May 2018 в 13:16

Другие вопросы по тегам:

Похожие вопросы: