我在熊猫里有以下数据帧
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
如何在熊猫身上做到这一点?
你能做的
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