如何在熊猫中将字符串转换为整数1

时间:2020-07-11 14:44:19

标签: python 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

如何在熊猫中做到这一点?

3 个答案:

答案 0 :(得分:2)

你可以做

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 :(得分:2)

这对我有用:

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 :(得分:1)

您也可以使用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