我的数据框:
HLLM HXBX JHWO RPNZ ZHNL
2008-08-31 0 0 0 0 0
2008-09-30 0 0 0 0 0
2008-10-31 3 1 0 0 5
2008-11-30 0 -1 0 0 0
我正在尝试将所有不等于0的值替换为值1
df = df.replace(df != 0, 1)
我该如何重写它才能使其正常工作?
答案 0 :(得分:3)
您可以简单地使用
df[df != 0] = 1
HLLM HXBX JHWO RPNZ ZHNL
2008-08-31 0 0 0 0 0
2008-09-30 0 0 0 0 0
2008-10-31 1 1 0 0 1
2008-11-30 0 1 0 0 0
答案 1 :(得分:2)
对于零情况,您可以使用将非零值视为“真”的事实:
df = df.astype(bool).astype(int)
在一般情况下,您可以使用pd.DataFrame.mask
:
df.mask(df.ne(0), 1, inplace=True)
print(df)
HLLM HXBX JHWO RPNZ ZHNL
2008-08-31 0 0 0 0 0
2008-09-30 0 0 0 0 0
2008-10-31 1 1 0 0 1
2008-11-30 0 1 0 0 0