我有两个熊猫系列:ser和ovr。
ser包含对象,并且ovr是Series对象和的稀疏对象None。ser并ovr共享相同的索引,我想ser用的对应值覆盖的每个值ovr,除非该对应的值是None。
有什么有效的方法可以做到这一点?
我建议使用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)