
266
8
章 データラングリング:連結、結合、変形
d 0.0
e 2.5
f 5.0
dtype: float64
データフレームに対しては、
combine_first
は対応する列同士で同様の操作を行います。呼び出し元
のオブジェクトに含まれる欠損値を、引数に与えたオブジェクトから「補完」していると考えるのがよい
でしょう。
In [114]: df1 = pd.DataFrame({'a': [1., np.nan, 5., np.nan],
.....: 'b': [np.nan, 2., np.nan, 6.],
.....: 'c': range(2, 18, 4)})
In [115]: df2 = pd.DataFrame({'a': [5., 4., np.nan, 3., 7.],
.....:
'b': [np.nan, 3., 4., 6., 8.]})
In [116]: df1
Out[116]:
a b c
0 1.0 NaN 2
1 NaN 2.0 6
2 5.0 NaN 10
3 NaN 6.0 14
In [117]: df2
Out[117]:
a b
0 5.0 NaN
1 4.0 3.0
2 NaN 4.0
3 3.0 6.0
4 7.0 8.0
In [118]: df1.combine_first(df2)
Out[118]:
a b c
0 1.0 NaN 2.0
1 4.0 2.0 6.0
2 5.0 4.0 10.0
3 3.0 6.0 14.0
4 7.0 8.0 NaN