提问者:小点点

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


我在熊猫里有以下数据帧

  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

如何在熊猫身上做到这一点?


共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 

匿名用户

您还可以使用np.where:

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