用另一个系列的值覆盖(更新)一个熊猫系列?

Dun*_*eal 4 python pandas

我有两个熊猫系列:serovr

ser包含对象,并且ovrSeries对象和的稀疏对象Noneserovr共享相同的索引,我想ser用的对应值覆盖的每个值ovr,除非该对应的值是None

有什么有效的方法可以做到这一点?

And*_*den 5

我建议使用NaN来丢失数据,而不要使用“无”(请注意:此技术也适用于“无”)。

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])
Run Code Online (Sandbox Code Playgroud)

首先看到s2值不是NaN(或无),这些是您要用以下方式更新s1的值:

In [3]: s2[s2.notnull()]
Out[3]:
0    7
1    2
2    3
dtype: float64
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用以下命令更新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
Run Code Online (Sandbox Code Playgroud)

  • @DunPeal http://stackoverflow.com/questions/17534106/what-is-the-difference-between-nan-and-none/17534682#17534682 (2认同)