pandas 系列的 Combine_first() 方法如何工作?
pandasserver side programmingprogramming更新于 2025/5/18 4:52:17
pandas 系列中的 Combine_first() 方法用于组合两个系列对象。它的工作方式与 series.combine() 方法类似,不同之处在于它使用另一个系列(第二个系列对象)中相同位置的元素更新空元素。并且 Combine_first() 方法仅接受一个参数,该参数只是第二个系列对象。
Combine_first() 方法接受两个系列对象,并通过在另一个系列对象中填充非空值来更新空元素。
示例 1
import pandas as pd
import numpy as np
# 创建 pandas Series1
series1 = pd.Series([2, 4, np.nan, 7])
print("First series object:",series1)
# 创建 pandas Series2
series2 = pd.Series([9,4,5,6])
print("Second series object:",series2)
# combine
print("combined series:",series1.combine_first(series2))
解释
在本例中,我们创建了两个 pandas 系列对象"series1"和"series2",series1 由一个 Nan 值创建。我们对这两个系列对象应用了 Combine_first() 方法。
输出
First series object: 0 2.0 1 4.0 2 NaN 3 7.0 dtype: float64 Second series object: 0 9 1 4 2 5 3 6 dtype: int64 combined series: 0 2.0 1 4.0 2 5.0 3 7.0 dtype: float64
在上面的输出块中,我们可以看到由combine_first()方法创建的结果系列对象。这里索引位置"2"处的NaN值用第二个系列对象相同位置的元素更新。其余值仅由第一个系列元素更新。
示例2
import pandas as pd
import numpy as np
# create pandas Series1
series1 = pd.Series([3,6,8,7])
print("First series object:",series1)
# create pandas Series2
series2 = pd.Series([9,4,5,np.nan])
print("Second series object:",series2)
# combine
print("combined series:",series1.combine_first(series2))
解释
在此示例中,第二个系列对象具有 nan 值,可以使用位于同一位置的第一个系列对象的元素进行更新。
输出
First series object: 0 3 1 6 2 8 3 7 dtype: int64 Second series object: 0 9.0 1 4.0 2 5.0 3 NaN dtype: float64 combined series: 0 3 1 6 2 8 3 7 dtype: int64
Series.combine_first() 方法返回更新为空值的系列。结果系列对象的行索引将是两个输入系列对象的并集。

