如何在Pandas中将negative列和Nan列值都更改为Zero

Sar*_*rah 3 python dataframe pandas

我的数据框架如下:

    A    B
10  AAA  0.0333
20  BBB  -67
30  CCC -0.98
40  DDD  NaN
Run Code Online (Sandbox Code Playgroud)

如何更改B列值(仅限负值和NaN为0)

到目前为止我试过像:

df[df< 0 ] = 0 
df.fillna(0, inplace=True)
Run Code Online (Sandbox Code Playgroud)

但是在一个命令中有效吗?我是熊猫新手.请告诉我这是不是最好的方法.

jez*_*ael 6

你可以使用locisnull:

df.loc[(df['B'] < 0) | (df['B'].isnull()), 'B'] = 0

      A       B
10  AAA  0.0333
20  BBB  0.0000
30  CCC  0.0000
40  DDD  0.0000    
Run Code Online (Sandbox Code Playgroud)