Python 将数据帧中的值替换为0和1

Python 将数据帧中的值替换为0和1,python,pandas,dataframe,Python,Pandas,Dataframe,我想在一个数据帧中,用0表示NaN值,用1表示NaN值 以下是我的数据: AA AAPL FB GOOG TSLA XOM Date 2018-02-28 NaN 0.068185 NaN NaN -0.031752 NaN 2018-03-31 -0.000222

我想在一个数据帧中,用0表示NaN值,用1表示NaN值

以下是我的数据:

 AA      AAPL     FB      GOOG      TSLA       XOM
Date                                                               
2018-02-28       NaN  0.068185    NaN       NaN -0.031752       NaN
2018-03-31 -0.000222       NaN    NaN       NaN       NaN -0.014920
2018-04-30  0.138790       NaN    NaN       NaN  0.104347       NaN
2018-05-31       NaN  0.135124  0.115       NaN       NaN       NaN
2018-06-30       NaN       NaN    NaN  0.028258  0.204474       NaN
2018-07-31       NaN  0.027983    NaN  0.091077       NaN       NaN
2018-08-31  0.032355  0.200422    NaN       NaN       NaN       NaN
2018-09-30       NaN -0.008303    NaN       NaN       NaN  0.060496
2018-10-31       NaN -0.030478    NaN       NaN  0.274011       NaN
2018-11-30       NaN       NaN    NaN  0.016401  0.039013       NaN
2018-12-31       NaN       NaN    NaN -0.053745 -0.050445       NaN
使用:

使用和:


将布尔值强制转换为int

df.notnull().astype(int)

            AA  AAPL  FB  GOOG  TSLA  XOM
2018-02-28   0     1   0     0     1    0
2018-03-31   1     0   0     0     0    1
2018-04-30   1     0   0     0     1    0
2018-05-31   0     1   1     0     0    0
2018-06-30   0     0   0     1     1    0

请张贴您尝试过的内容。
df = df.mask(df.notna(), 1).fillna(0, downcast='infer')
df.notnull().astype(int)

            AA  AAPL  FB  GOOG  TSLA  XOM
2018-02-28   0     1   0     0     1    0
2018-03-31   1     0   0     0     0    1
2018-04-30   1     0   0     0     1    0
2018-05-31   0     1   1     0     0    0
2018-06-30   0     0   0     1     1    0