3
我有兩隻熊貓系列:ser
和ovr
。用另一個Series的值覆蓋(更新)一個pandas系列?
ser
包含對象,ovr
是對象的稀疏Series
和None
的。 ser
和ovr
共享相同的索引,並且我想覆蓋ser
的每個值及其相應的值ovr
,除非對應的值爲None
。
什麼是有效的方法來實現這一目標?
我有兩隻熊貓系列:ser
和ovr
。用另一個Series的值覆蓋(更新)一個pandas系列?
ser
包含對象,ovr
是對象的稀疏Series
和None
的。 ser
和ovr
共享相同的索引,並且我想覆蓋ser
的每個值及其相應的值ovr
,除非對應的值爲None
。
什麼是有效的方法來實現這一目標?
I recommend using NaN for missing data rather than 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])
首先看到S2值不屬於NaN的(或無),這些是那些要更新的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
謝謝!這很好。順便說一句,爲什麼你推薦NaN優於None的缺失值,即使當'Series'是dtype'object'? –
@鄧佩爾http://stackoverflow.com/questions/17534106/what-is-the-difference-between-nan-and-none/17534682#17534682 –
@AndyHayden我真的需要這個問題的答案,但找不到它在Google上已經很長時間了。我們是否可以編輯問題以擺脫那些不相關的稀疏東西,並將標題中的「覆蓋」更改爲「替換」或「更新」? – LondonRob