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() 方法返回更新为空值的系列。结果系列对象的行索引将是两个输入系列对象的并集。


相关文章