import numpy as np
import pandas as pd
df1 = pd. DataFrame( np. random. randn( 8 , 12 ) )
df1
0 1 2 3 4 5 6 7 8 9 10 11 0 0.781495 -0.956770 -2.041881 -2.131769 -0.434786 0.315795 2.506154 -0.461058 0.046417 -0.876173 2.273990 0.404110 1 0.695166 0.557982 -0.752808 -1.076877 1.288435 1.594994 1.071906 -0.743158 1.396590 1.301780 -1.005444 0.290408 2 -0.876931 0.712162 -0.166832 0.267058 -0.207691 1.261624 -0.403082 0.132663 -1.221775 1.152641 0.499253 -1.754460 3 -0.012622 -0.597558 -0.942167 0.363333 0.801809 -0.120496 0.609882 -0.065820 0.830766 -0.412523 -0.770713 0.344326 4 1.231323 -0.795497 -0.908172 0.639552 0.227574 -0.270995 0.616138 -1.471439 2.071419 1.847138 -0.799393 -0.426353 5 0.186352 0.500882 -1.055367 0.164030 -0.761327 -0.344809 1.474521 -0.811413 0.043872 1.250452 -0.727637 -0.551056 6 0.483201 0.812439 0.359324 -0.172657 -0.597168 -0.434302 -0.449732 0.496633 -1.853756 1.708570 -0.315266 1.454854 7 -0.186381 -0.346896 2.253813 1.121086 0.383741 0.063512 -2.256346 -1.490154 0.777294 -0.911052 1.999403 -2.083665
df2 = pd. DataFrame( np. random. randn( 8 , 12 ) )
df2
0 1 2 3 4 5 6 7 8 9 10 11 0 -0.144815 1.043357 0.140666 -1.512447 -0.550580 1.492557 -0.076150 0.695161 -1.121538 3.309408 -0.715549 -0.797320 1 -1.049292 0.473925 -0.067462 -0.176861 -1.709414 -0.516771 0.524147 -1.166597 -0.541530 -0.435534 0.694487 -0.710785 2 -1.156838 1.536175 -1.189410 -0.325310 -0.837905 0.131770 1.467033 0.180468 0.212995 -0.355721 0.729965 -0.620106 3 1.394005 -1.813023 -0.038861 0.698648 1.524630 -0.486605 0.420300 -0.070914 0.331405 0.251950 0.110747 -0.678403 4 0.214991 -1.631456 2.005890 1.634248 -1.278251 1.445459 1.026135 1.342661 1.207896 0.908430 -0.246870 -0.127285 5 0.643826 2.089949 0.060166 0.536769 0.162407 -1.112289 -1.686902 0.002583 -0.576754 1.007662 0.634476 -0.038816 6 -0.065258 -0.483580 -0.241495 0.295828 1.993142 1.902192 0.072042 -0.722699 0.600862 0.088476 0.239478 2.057863 7 -3.614046 -0.729890 0.583971 -0.578744 -0.370513 -0.722133 -1.803409 1.615766 -0.706846 0.712729 -2.173237 -0.590307
df1[ ( df1 > 0 ) & ( df2 > 0 ) ]
0 1 2 3 4 5 6 7 8 9 10 11 0 NaN NaN NaN NaN NaN 0.315795 NaN NaN NaN NaN NaN NaN 1 NaN 0.557982 NaN NaN NaN NaN 1.071906 NaN NaN NaN NaN NaN 2 NaN 0.712162 NaN NaN NaN 1.261624 NaN 0.132663 NaN NaN 0.499253 NaN 3 NaN NaN NaN 0.363333 0.801809 NaN 0.609882 NaN 0.830766 NaN NaN NaN 4 1.231323 NaN NaN 0.639552 NaN NaN 0.616138 NaN 2.071419 1.847138 NaN NaN 5 0.186352 0.500882 NaN 0.164030 NaN NaN NaN NaN NaN 1.250452 NaN NaN 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN 1.708570 NaN 1.454854 7 NaN NaN 2.253813 NaN NaN NaN NaN NaN NaN NaN NaN NaN
df2[ ( df1 > 0 ) & ( df2 > 0 ) ]
0 1 2 3 4 5 6 7 8 9 10 11 0 NaN NaN NaN NaN NaN 1.492557 NaN NaN NaN NaN NaN NaN 1 NaN 0.473925 NaN NaN NaN NaN 0.524147 NaN NaN NaN NaN NaN 2 NaN 1.536175 NaN NaN NaN 0.131770 NaN 0.180468 NaN NaN 0.729965 NaN 3 NaN NaN NaN 0.698648 1.52463 NaN 0.420300 NaN 0.331405 NaN NaN NaN 4 0.214991 NaN NaN 1.634248 NaN NaN 1.026135 NaN 1.207896 0.908430 NaN NaN 5 0.643826 2.089949 NaN 0.536769 NaN NaN NaN NaN NaN 1.007662 NaN NaN 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.088476 NaN 2.057863 7 NaN NaN 0.583971 NaN NaN NaN NaN NaN NaN NaN NaN NaN
df1. where( ( df1 > 0 ) & ( df2 > 0 ) )
0 1 2 3 4 5 6 7 8 9 10 11 0 NaN NaN NaN NaN NaN 0.315795 NaN NaN NaN NaN NaN NaN 1 NaN 0.557982 NaN NaN NaN NaN 1.071906 NaN NaN NaN NaN NaN 2 NaN 0.712162 NaN NaN NaN 1.261624 NaN 0.132663 NaN NaN 0.499253 NaN 3 NaN NaN NaN 0.363333 0.801809 NaN 0.609882 NaN 0.830766 NaN NaN NaN 4 1.231323 NaN NaN 0.639552 NaN NaN 0.616138 NaN 2.071419 1.847138 NaN NaN 5 0.186352 0.500882 NaN 0.164030 NaN NaN NaN NaN NaN 1.250452 NaN NaN 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN 1.708570 NaN 1.454854 7 NaN NaN 2.253813 NaN NaN NaN NaN NaN NaN NaN NaN NaN
df2. where( ( df1 > 0 ) & ( df2 > 0 ) , other= "$" )
0 1 2 3 4 5 6 7 8 9 10 11 0 $ $ $ $ $ 1.49256 $ $ $ $ $ $ 1 $ 0.473925 $ $ $ $ 0.524147 $ $ $ $ $ 2 $ 1.53617 $ $ $ 0.13177 $ 0.180468 $ $ 0.729965 $ 3 $ $ $ 0.698648 1.52463 $ 0.4203 $ 0.331405 $ $ $ 4 0.214991 $ $ 1.63425 $ $ 1.02613 $ 1.2079 0.90843 $ $ 5 0.643826 2.08995 $ 0.536769 $ $ $ $ $ 1.00766 $ $ 6 $ $ $ $ $ $ $ $ $ 0.0884757 $ 2.05786 7 $ $ 0.583971 $ $ $ $ $ $ $ $ $
df1. mask( ( df1 > 0 ) & ( df2 > 0 ) )
0 1 2 3 4 5 6 7 8 9 10 11 0 0.781495 NaN NaN -2.131769 -0.434786 0.315795 2.506154 NaN 0.046417 NaN 2.273990 0.404110 1 0.695166 0.557982 -0.752808 -1.076877 1.288435 1.594994 1.071906 -0.743158 1.396590 1.301780 NaN 0.290408 2 -0.876931 0.712162 -0.166832 0.267058 -0.207691 1.261624 NaN 0.132663 NaN 1.152641 0.499253 -1.754460 3 NaN -0.597558 -0.942167 0.363333 0.801809 -0.120496 0.609882 -0.065820 0.830766 NaN NaN 0.344326 4 1.231323 -0.795497 NaN 0.639552 0.227574 NaN 0.616138 NaN 2.071419 1.847138 -0.799393 -0.426353 5 0.186352 0.500882 NaN 0.164030 NaN -0.344809 1.474521 NaN 0.043872 1.250452 NaN -0.551056 6 0.483201 0.812439 0.359324 NaN NaN NaN NaN 0.496633 NaN 1.708570 NaN 1.454854 7 -0.186381 -0.346896 2.253813 1.121086 0.383741 0.063512 -2.256346 NaN 0.777294 NaN 1.999403 -2.083665
df1 = df1. where( ( df1 > 0 ) & ( df2 > 0 ) )
if ( df1. items != "NaN" ) :
print ( df1. items)
<bound method DataFrame.items of 0 1 2 3 4 5 6 \
0 NaN NaN NaN NaN NaN 0.315795 NaN
1 NaN 0.557982 NaN NaN NaN NaN 1.071906
2 NaN 0.712162 NaN NaN NaN 1.261624 NaN
3 NaN NaN NaN 0.363333 0.801809 NaN 0.609882
4 1.231323 NaN NaN 0.639552 NaN NaN 0.616138
5 0.186352 0.500882 NaN 0.164030 NaN NaN NaN
6 NaN NaN NaN NaN NaN NaN NaN
7 NaN NaN 2.253813 NaN NaN NaN NaN
7 8 9 10 11
0 NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN
2 0.132663 NaN NaN 0.499253 NaN
3 NaN 0.830766 NaN NaN NaN
4 NaN 2.071419 1.847138 NaN NaN
5 NaN NaN 1.250452 NaN NaN
6 NaN NaN 1.708570 NaN 1.454854
7 NaN NaN NaN NaN NaN >