In [1]:
import numpy as np
import pandas as pd
from pandas import Series, DataFrame

In [2]:
ser1 = Series([2,np.nan, 4, np.nan, 6, np.nan], index = list('QRSTUV'))

In [4]:
ser1


Out[4]:
Q    2.0
R    NaN
S    4.0
T    NaN
U    6.0
V    NaN
dtype: float64

In [5]:
ser2 = Series(np.arange(len(ser1)), dtype = np.float64, index = list('QRSTUV'))

In [6]:
ser2


Out[6]:
Q    0.0
R    1.0
S    2.0
T    3.0
U    4.0
V    5.0
dtype: float64

In [7]:
Series(np.where(pd.isnull(ser1), ser2, ser1), index=ser1.index)


Out[7]:
Q    2.0
R    1.0
S    4.0
T    3.0
U    6.0
V    5.0
dtype: float64

In [8]:
ser1.combine_first(ser2)


Out[8]:
Q    2.0
R    1.0
S    4.0
T    3.0
U    6.0
V    5.0
dtype: float64

In [9]:
dframe_odds = DataFrame({'X': [1, np.nan, 3, np.nan], 'Y': [np.nan, 5, np.nan, 7], 'Z': [np.nan, 9, np.nan, 11]})

In [10]:
dframe_evens = DataFrame({'X': [2, 4, np.nan, 6, 8], 'Y': [np.nan, 10, 12, 14, 16]})

In [11]:
dframe_odds.combine_first(dframe_evens)


Out[11]:
X Y Z
0 1.0 NaN NaN
1 4.0 5.0 9.0
2 3.0 12.0 NaN
3 6.0 7.0 11.0
4 8.0 16.0 NaN

In [ ]: