combine_first( )方法
序列的例子
#combine_first()方法前的是調用參數,在括號里的是傳遞參數,把前者為np.nan的用后者相同位置的數來補充,相當於“打補丁” ser1=pd.Series([np.nan,2.5,np.nan,3.5,4.5,np.nan],index=['f', 'e', 'd', 'c', 'b', 'a']) ser2=pd.Series(np.arange(len(ser1)),dtype='float',index=['f', 'e', 'd', 'c', 'b', 'a']) ser2[-1]=np.nan mask=ser2[:-2].combine_first(ser1[2:]) mask2=ser1[2:].combine_first(ser2[:-2]) print("原序列:\n",ser1) print(ser2) print("ser2.ser1結果:\n",mask) print("ser1.ser2結果:\n",mask2)
結果: 注意紅圈中 的區別,是誰給誰補洞

END
數據框的例子
df1 = pd.DataFrame({'a': [1., np.nan, 5., np.nan],'b': [np.nan, 2., np.nan, 6.],'c': range(2, 18, 4)})
df2 = pd.DataFrame({'a': [5., 4., np.nan, 3., 7.],'b': [np.nan, 3., 4., 6., 8.]})
print("數據框:\n",df1,"\n",df2)
print("\ndf1.combine_first(df2)的結果:\n",df1.combine_first(df2))
print("\ndf2.combine_first(df1)的結果:\n",df2.combine_first(df1))
結果: 注意是誰給誰補洞

END
