Python Pandas Series.combined_first()
Python是一种进行数据分析的伟大语言,主要是因为以数据为中心的Python包的奇妙生态系统。Pandas就是这些包中的一个,它使导入和分析数据变得更加容易。
Pandas combine_first()方法用于将两个系列合并为一个。其结果是两个系列的联合,即在调用者系列中出现空值的情况下,从通过的系列中取值。如果在同一个索引上有两个空值,则在该索引上返回空值。
注意:这个方法与Series.combined()不同,后者需要一个函数作为参数来决定输出值。
语法: Series.combine_first(other)
参数:
other: 其他系列要与呼叫器系列相结合。
返回类型: Pandas系列
示例:
在这个例子中,我们使用Pandas Series()方法从列表中创建了两个系列。一些空值也使用Numpy np.nan传递给每个列表。然后使用.combined_first()方法将两个系列合并。首先,该方法被series1调用,结果存储在result1中,然后类似的方法被series2调用,存储在result2中。然后,两个返回的系列都被打印出来以比较输出。
# importing pandas module
import pandas as pd
# importing numpy module
import numpy as np
# creating series 1
series1 = pd.Series([70, 5, 0, 225, 1, 16, np.nan, 10, np.nan])
# creating series 2
series2 = pd.Series([27, np.nan, 2, 23, 1, 95, 53, 10, 5])
# combining and returning results to variable
# calling on series1
result1 = series1.combine_first(series2)
# calling on series2
result2 = series2.combine_first(series1)
# printing result
print('Result 1:\n', result1, '\n\nResult 2:\n', result2)
输出:
如输出结果所示,即使是相同的系列被合并,但输出结果是不同的。这是因为 combine_first() 方法优先考虑了第一个系列(Caller 系列)。如果该位置上有空值,它就从第二个系列的相同索引处取值。
Result 1:
0 70.0
1 5.0
2 0.0
3 225.0
4 1.0
5 16.0
6 53.0
7 10.0
8 5.0
dtype: float64
Result 2:
0 27.0
1 5.0
2 2.0
3 23.0
4 1.0
5 95.0
6 53.0
7 10.0
8 5.0
dtype: float64