使用Python

时间:2017-03-13 23:56:22

标签: python pandas matrix dataframe

我有一个类似于此的数据框(但非常大):

      1234  4567   7890
Ecu    0.2     0     12         
Per    0.8    12      0  
Col    345    -3      0

我需要用条件if X > 0, X = 1 and if X < 0, X = 0替换所有列中的数字(但不是第一个中的数字),结果我需要另一个数据帧,如下所示。

      1234  4567   7890
Ecu      1     0      1         
Per      1     1      0  
Col      1     0      0

1 个答案:

答案 0 :(得分:1)

使用布尔索引:

In [7]: df.iloc[:, 1:] = df.iloc[:, 1:].gt(0).astype(np.uint8)

In [8]: df
Out[8]:
      1234  4567  7890
Ecu    0.2     0     1
Per    0.8     1     0
Col  345.0     0     0

它会将所有正数(>0)替换为1,将所有非正数(<=0)替换为0