用布尔True替换数字

时间:2020-02-24 10:53:10

标签: python python-3.x pandas numpy

我有一个带有这样一列的数据框:

>>> df['Level'] = df.Level.replace('-',0).astype('int64')
>>> df
   Level
0      1
1     -2
2      0
3      2
>>> df['Level'].dtypes
dtype('int64')

我想用False代替NaN,用True代替所有浮点数。

df['test'] = [NaN, 1.0, NaN, NaN, NaN, 13.0]

我尝试过:

[False, True, False, False, False, True]

问题:这可以正确替换NaN,但不能浮动。

有人可以帮我吗?谢谢!

2 个答案:

答案 0 :(得分:4)

您可以使用.notna()方法

df['test'].notna()

答案 1 :(得分:1)

您在这里。不是最佳答案,而是其中一种方法。

>>> df
   test
0   NaN
1   1.0
2   NaN
3   NaN
4   NaN
5  13.0
>>> df.apply(lambda x: pd.notna(x))
    test
0  False
1   True
2  False
3  False
4  False
5   True
>>>