【发布时间】:2020-04-26 20:53:35
【问题描述】:
我想在 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)
知道为什么会这样吗?
【问题讨论】:
-
result['Launch year (final)'] = result['Launch year'].fillna('Launch year (filled)') -
你试过
if row['Launch year'] == np.nan吗? -
@QuangHoang 成功了,只需将 fillna 内部更改为 result[`Launch year (filled)]。谢谢!!知道为什么我的条件返回相反吗?
-
@Renaud 还没有,我直到现在才使用 pandas,但肯定会尝试一下。
-
@Renaud
np.nan == np.nan将返回 False。
标签: python pandas dataframe null conditional-statements