使用其他系列的值覆盖(更新)pandas系列?

时间:2013-09-24 22:02:22

标签: python pandas

我有两个大熊猫系列:serovr

ser包含对象,ovr是对象的稀疏SeriesNoneserovr共享相同的索引,我想用ser的相应值覆盖ovr的每个值,除非相应的值为{{1 }}

实现这一目标的有效方法是什么?

1 个答案:

答案 0 :(得分:4)

I recommend using NaN for missing data rather than None(注意:此技术也适用于None)。

In [1]: s1 = pd.Series([1, np.nan, 3, 4, 5, np.nan])

In [2]: s2 = pd.Series([7, 2, 3, np.nan, np.nan])

首先看到不是NaN(或None)的s2值,这些是你想用s1更新s1的那些:

In [3]: s2[s2.notnull()]
Out[3]:
0    7
1    2
2    3
dtype: float64

然后你可以用这些来更新s1的值:

In [4]: s1.update(s2[s2.notnull()])

In [5]: s1
Out[5]:
0     7
1     2
2     3
3     4
4     5
5   NaN
dtype: float64