Как преобразовать строку в целое число 1 в pandas - PullRequest
1 голос
/ 11 июля 2020

У меня есть следующий фрейм данных в pandas

  cust_id     desktop           laptop          accessories
  123         2020-02-22        2020-01-01      0
  234         2019-02-02        0               0
  211         2020-02-23        0               0

Мой желаемый фрейм данных выглядит следующим образом

  cust_id     desktop           laptop          accessories
  123         1                 1               0
  234         1                 0               0
  211         1                 0               0

Везде, где есть значение, кроме 0, необходимо преобразовать в 1. Все столбцы имеют тип object

Как это сделать в pandas?

Ответы [ 3 ]

2 голосов
/ 12 июля 2020

Это сработало для меня:

df = df.applymap(lambda x: 1 if x != 0 else 0)

Вывод:

         desktop  laptop  accessories
cust_id                              
123            1       1            0
234            1       0            0
211            1       0            0
2 голосов
/ 11 июля 2020

Можно сделать

df.update((df.loc[:,'desktop':].astype(str)!='0').astype(int))
df
   cust_id desktop laptop  accessories
0      123       1      1            0
1      234       1      0            0
2      211       1      0            0 
1 голос
/ 11 июля 2020

Вы также можете использовать np.where:

In [47]: import numpy as np

In [48]: df.desktop = np.where(df.desktop.ne('0'), 1, 0)    
In [49]: df.laptop = np.where(df.laptop.ne('0'), 1, 0)  

In [50]: df
Out[50]: 
   cust_id  desktop  laptop  accessories
0      123        1       1            0
1      234        1       0            0
2      211        1       0            0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...