2017-04-25 91 views
1

我有兩個相同大小和尺寸的數據幀df1df2。有沒有簡單的方法將'df1'中的所有NaN值複製到'df2'?下面的例子演示從.copynans()從一個數據幀複製nan值到另一個

In: df1 
Out: 
        10053802 10053856 10053898 10058054 
2012-07-01 00:00:00  100.0  0.353  0.300  0.326 
2012-07-01 00:30:00  101.0  0.522  0.258  0.304 
2012-07-01 01:00:00  102.0  0.311  0.369  0.228 
2012-07-01 01:30:00  103.0  NaN  0.478  0.247 
2012-07-01 02:00:00  101.0  NaN  NaN  0.259 
2012-07-01 02:30:00  102.0  0.281  NaN  0.239 
2012-07-01 03:00:00  125.0  0.320  NaN  0.217 
2012-07-01 03:30:00  136.0  0.288  NaN  0.283 

In: df2 
Out: 
        10053802 10053856 10053898 10058054 
2012-07-01 00:00:00  1.0  2.0  3.0  4.0 
2012-07-01 00:30:00  1.0  2.0  3.0  4.0 
2012-07-01 01:00:00  1.0  2.0  3.0  4.0 
2012-07-01 01:30:00  1.0  2.0  3.0  4.0 
2012-07-01 02:00:00  1.0  2.0  3.0  4.0 
2012-07-01 02:30:00  1.0  2.0  3.0  4.0 
2012-07-01 03:00:00  1.0  2.0  3.0  4.0 
2012-07-01 03:30:00  1.0  2.0  3.0  4.0 

In: df2.copynans(df1) 
Out: 
        10053802 10053856 10053898 10058054 
2012-07-01 00:00:00  1.0  2.0  3.0  4.0 
2012-07-01 00:30:00  1.0  2.0  3.0  4.0 
2012-07-01 01:00:00  1.0  2.0  3.0  4.0 
2012-07-01 01:30:00  1.0  NaN  3.0  4.0 
2012-07-01 02:00:00  1.0  NaN  NaN  4.0 
2012-07-01 02:30:00  1.0  2.0  NaN  4.0 
2012-07-01 03:00:00  1.0  2.0  NaN  4.0 
2012-07-01 03:30:00  1.0  2.0  NaN  4.0 

回答

3

要麼

df1.where(df2.notnull()) 

或者

df1.mask(df2.isnull()) 
我想要的輸出
2
#Use null cells from df1 as index to set the the corresponding cell to nan in df2 
df2[df1.isnull()]=np.nan 
相關問題