Pandas将填充分为多个值

时间:2015-12-10 20:10:38

标签: python numpy pandas na

我有两个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

有一种简单的方法吗?

1 个答案:

答案 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