Pandas условный столбец, возвращающий обратное? - PullRequest
0 голосов
/ 26 апреля 2020

Я хочу добавить третий столбец на Pandas фрейме данных, который является условным, используя информацию из второго, если первым является NaN, и из первого в любых других случаях.

Когда я использую следующий код, он просто не работает. НО, если я поменяю == на! = Это работает (что не имеет никакого смысла для меня, так как я спрашиваю об обратном).

def Launch_year_final(row):
    if row['Launch year'] == 'NaN':
        return row['Launch year (filled)']
    else:
        return row['Launch year']

result['Launch year (final)'] = result.apply(Launch_year_final, axis=1)

Есть идеи, почему это происходит?

1 Ответ

0 голосов
/ 27 апреля 2020

NaN значение специальной константы, чтобы проверить, если что-то NaN, вам нужно использовать pandas.isnan или numpy.isnan(). Другое решение использует numpy.where():

import numpy as np
result['Launch year (final)'] = np.where(np.isnan(result['Launch year']), 
                                         result['Launch year (filled)'],
                                         result['Launch year'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...