РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
116 of 687 menu

Метод combine_first

Метод combine_first применяется к DataFrame и выполняет поэлементное объединение таблиц. В качестве первого параметра передаётся другая таблица, значения из которой будут использоваться для заполнения пропусков NaN в исходной таблице. При этом если в исходной таблице значение присутствует, оно остаётся без изменений. Метод автоматически выравнивает индексы строк и столбцов, добавляя отсутствующие элементы.

Синтаксис

df.combine_first(other)

Пример

Давайте заполним пропуски в одной таблице значениями из другой:

import pandas as pd import numpy as np df1 = pd.DataFrame({ 'a': [1, np.nan, 3], 'b': [np.nan, 5, 6] }) df2 = pd.DataFrame({ 'a': [10, 20, 30], 'b': [40, 50, 60] }) res = df1.combine_first(df2) print(res)

Результат выполнения кода:

a b 0 1.0 40.0 1 20.0 5.0 2 3.0 6.0

Пример

Теперь рассмотрим ситуацию, когда в исходной таблице присутствуют все значения, а во второй есть только часть данных:

import pandas as pd import numpy as np df1 = pd.DataFrame({ 'a': [1, 2, 3], 'b': [4, 5, 6] }) df2 = pd.DataFrame({ 'a': [100, 200], 'b': [300, 400] }) res = df1.combine_first(df2) print(res)

Результат выполнения кода:

a b 0 1 4 1 2 5 2 3 6

Пример

А теперь посмотрим, как метод работает с разными индексами строк и столбцов:

import pandas as pd import numpy as np df1 = pd.DataFrame({ 'a': [1, 2], 'b': [3, 4] }, index=[0, 1]) df2 = pd.DataFrame({ 'b': [np.nan, 6], 'c': [7, 8] }, index=[1, 2]) res = df1.combine_first(df2) print(res)

Результат выполнения кода:

a b c 0 1.0 3.0 NaN 1 2.0 4.0 7.0 2 NaN 6.0 8.0

Смотрите также

  • метод combine,
    который объединяет таблицы с помощью функции
  • метод merge,
    который объединяет таблицы по ключам
  • метод join,
    который объединяет таблицы по индексам
  • метод fillna,
    который заполняет пропуски указанным значением
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить