Pandas DataFrame将除0之外的每个值替换为1

Nil*_*age 2 python replace dataframe pandas

我有一个像下面这样的pandas DataFrame.

3,0,1,0,0
11,0,0,0,0
1,0,0,0,0
0,0,0,0,4
13,1,1,5,0
Run Code Online (Sandbox Code Playgroud)

除了'0'之外,我需要将每个其他值替换为'1'.所以我的预期输出.

1,0,1,0,0
1,0,0,0,0
1,0,0,0,0
0,0,0,0,1
1,1,1,1,0
Run Code Online (Sandbox Code Playgroud)

Mar*_*ius 6

只需使用类似于df[df != 0]获取数据帧的非零部分:

import pandas as pd
import numpy as np
np.random.seed(123)

df = pd.DataFrame(np.random.randint(0, 10, (5, 5)), columns=list('abcde'))
df
Out[11]: 
   a  b  c  d  e
0  2  2  6  1  3
1  9  6  1  0  1
2  9  0  0  9  3
3  4  0  0  4  1
4  7  3  2  4  7

df[df != 0] = 1
df
Out[13]: 
   a  b  c  d  e
0  1  1  1  1  1
1  1  1  1  0  1
2  1  0  0  1  1
3  1  0  0  1  1
4  1  1  1  1  1
Run Code Online (Sandbox Code Playgroud)