Одна небольшая точка для решения Энди Хейдена - это не работает (больше?), потому что np.nan == np.nan
дает False
, поэтому функция replace
фактически ничего не делает.
Что работал для меня:
df['b'] = df['b'].apply(lambda x: x if not np.isnan(x) else -1)
(По крайней мере, это поведение для Pandas 0.19.2. Извините, что добавьте его как другой ответ, у меня недостаточно репутации для комментариев.)