some_series.update(other_series)
将使用some_series
的匹配(按索引)值覆盖other_series
上的所有值。但是,它会跳过所有NA值,如无。
如果我想从some_series
更新other_series
,并且还应用NA值,我应该使用什么?
澄清一下,这就是我想要的:
In [197]: some_series
Out[197]:
0 1
1 2
dtype: int64
In [198]: other_series
Out[198]:
0 None
dtype: object
In [203]: some_series # after overriding it with other_series:
Out[203]:
0 None
1 2
dtype: object
答案 0 :(得分:1)
我不确定这是最好的方式,但这是一种方式。您必须确保要更新的系列包括另一个系列(例如使用reindex)。
map (\c -> if isLetter c then c else ' ')
注意:如果没有这个阶段,如果您只是尝试更新s,那么您将获得KeyError。
In [11]: s
Out[11]:
0 1
1 2
dtype: int64
In [12]: t
Out[12]:
1 NaN
2 3
3 4
dtype: float64
In [13]: res = s.reindex(s.index.union(t.index))
更新只是 s的索引使用交集:
In [14]: res.loc[t.index] = t
In [25]: res
Out[25]:
0 1
1 NaN
2 3
3 4
dtype: float64
答案 1 :(得分:1)
以下方法可行,它使用loc
和其他系列索引来屏蔽我们要覆盖的元素:
In [106]:
some_series = pd.Series([1, 2])
other_series = pd.Series([None])
some_series.loc[other_series.index] = other_series
some_series
Out[106]:
0 NaN
1 2
dtype: float64
在这种情况下,loc
实际上是不必要的
答案 2 :(得分:0)
some_series[other_series.index] = other_series