Невозможно обновить определенные записи в DataFrame

У меня есть dataframe, где некоторые записи в column_1 имеют значения NaN . Я хочу заменить их соответствующими значениями в column_2 . Оба столбца содержат значения float64 .

Я попробовал следующее, но, как ни странно, он не обновляет значения.

  ix = np.isnan(mydf.loc[:,'column_1']) mydf[ix]['column_1'] = tchart[ix]['column_2'] 

Действительно странно, так как я прекрасно понимаю, что:

 mydf[ix]['column_1'] 

представляет собой ряд с значениями NaN

и что

 mydf[ix]['column_2'] 

имеет действительные значения.

Почему он не работает?

Я даже не могу:

 mydf[ix]['column_1'] = 45 

Это пример цепочки индексирования. Для получения значений это обычно нормально; однако для установки значений он может работать или не работать, поскольку вы можете пытаться установить значения на копии. Всегда лучше устанавливать через индексы ix/loc для многомерной настройки.

В этом примере используйте mydf.loc[ix,'columns_1'] = 45

См. Здесь более подробное объяснение.