Метод 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