2017-04-25 1 views
1

J'ai deux données df1 et df2 de même taille et dimensions. Existe-t-il un moyen simple de copier toutes les valeurs NaN dans 'df1' à 'df2'? L'exemple ci-dessous montre la sortie que je veux de .copynans()Copie des valeurs nan d'une même image à une autre

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 

Répondre

3

Soit

df1.where(df2.notnull()) 

Ou

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