Заменить числа логическим True - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть фрейм данных с таким столбцом:

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

Я хотел бы заменить NaN на False, а все значения с плавающей точкой - True.

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

I пробовал:

df['test'].replace(np.nan, False, inplace=True)
df['test'].replace(np.float64, True, inplace=True)

Проблема: это заменяет NaN правильно, но не плавает.

Может кто-нибудь помочь мне, пожалуйста? Спасибо!

Ответы [ 2 ]

4 голосов
/ 24 февраля 2020

Вы можете использовать .notna() метод

df['test'].notna()
1 голос
/ 24 февраля 2020

Вот ты go. Не лучший ответ, но один из способов.

>>> 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
>>> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...