我有两个pandas系列对象,索引略有不同。我想把一个系列分开。当两个系列中的一个缺少索引元素时,默认方法为我提供NA。有一个填充缺失值的选项,但它只能设置为一个值。我想根据哪个系列缺少值来填充值。
例如
series1
0 10
1 20
2 30
3 40
series2
1 2
2 3
3 4
4 5
expected result: series1.divide(series2)
0 inf
1 10
2 10
3 10
4 0
actual result: series1.divide(series2)
0 NaN
1 10
2 10
3 10
4 NaN
有一种简单的方法吗?
答案 0 :(得分:1)
您可以使用reindex
展开series1.index
以包含series2.index
,用0填充缺失值。然后您可以使用div
方法填充缺失值默认为NaN:
series1 = pd.Series([10,20,30,40], index=[0,1,2,3])
series2 = pd.Series([2,3,4,5], index=[1,2,3,4])
series1 = series1.reindex(series1.index.union(series2.index), fill_value=0)
print(series1.div(series2))
# 0 nan
# 1 10.00000
# 2 10.00000
# 3 10.00000
# 4 0.00000
# dtype: float64