2017-04-25 4 views
1

同じサイズとサイズの2つのデータフレーム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 
関連する問題