Панды заполняют отсутствующие значения в dataframe из другого фрейма данных

Я не могу найти функцию pandas (что я видел раньше), чтобы заменить NaN в фрейме данных значениями из другого фрейма данных (при условии, что общий индекс может быть указан). Любая помощь?

3 Solutions collect form web for “Панды заполняют отсутствующие значения в dataframe из другого фрейма данных”

Если у вас есть два DataFrames одинаковой формы, тогда:

 df[df.isnull()] = d2 

Будет делать трюк.

Визуальное представление

Только места, где df.isnull() оценивает значение True (выделено зеленым цветом), будут иметь право на назначение.

На практике, DataFrames не всегда одинакового размера / формы, и методы преобразования (особенно .shift() ) полезны.

Входящие данные неизменно грязные, неполные или непоследовательные. Par для курса. Там есть довольно обширный учебник по пандам и связанная с ним кулинарная книга для решения этих ситуаций.

Как я только что узнал, существует метод DataFrame.combine_first() , который делает именно это, с дополнительным свойством, которое, если ваш фрейм данных обновления d2 больше, чем ваш исходный df , добавляются дополнительные строки и столбцы.

 df = df.combine_first(d2) 

DataFrame.combine_first () точно отвечает на этот вопрос.

Тем не менее, иногда вы хотите заполнить / заменить / перезаписать некоторые из не пропущенных (не NaN) значений DataFrame A со значениями из DataFrame B. Этот вопрос привел меня на эту страницу, и решением является DataFrame.mask ()

 A = B.mask(condition, A) 

Когда condition истинно, будут использоваться значения из A, иначе значения B будут использоваться.

Например, вы можете решить исходный вопрос OP с помощью mask , чтобы, когда элемент из A не является NaN, используйте его, иначе используйте соответствующий элемент из B.

Но используя DataFrame.mask (), вы можете заменить значения A, которые не соответствуют произвольным критериям (меньше нуля более 100?) Со значениями из B. Таким образом, mask более гибкая и переполняет эту проблему, но я подумал это было достойно упоминания (мне нужно было решить мою проблему).

Также важно отметить, что B может представлять собой массив numpy вместо DataFrame. DataFrame.combine_first () требует, чтобы B был DataFrame, но DataFrame.mask () просто требует, чтобы B был NDFrame и его размеры соответствовали размерам A.

  • Как вывести имя индекса столбца в dataframe
  • Как написать функцию лямбда, которая обусловлена ​​двумя переменными (столбцами) в python
  • Разбор строки JSON, загруженной из CSV с использованием Pandas
  • Определение Pandas Column DataType
  • булевая маска в пандах
  • Создание больших Pandas DataFrames: preallocation vs append vs concat
  • Преобразование столбцов данных в MultiIndex
  • Заполните значения строк DataFrame на основе значений других строк в строке dataprame pandas
  • Python - лучший язык программирования в мире.