在数据框Python中选择通用元素

时间:2018-07-14 17:47:10

标签: python pandas

我有3个DF,我想找到所有具有相同方向的单元(即,在DF上始终为正或始终为负):

test=pd.DataFrame([[0,1,0,3],
                   [-1,3,0,2],
                   [2,1.5,-3,1]],
                  columns=['a','b','c','d']
                   )
test2=pd.DataFrame([[1,1,0,2],
                   [1,-3,0,1],
                   [2,1.5,-2,1]],
                  columns=['a','b','c','d']
                   )
test3=pd.DataFrame([[1,2,0,2],
                   [1,-2,0,1],
                   [2,1.5,-2,1]],
                  columns=['a','b','c','d']
                   )

结果应该是3个数据框,其中不一致的元素显示NA。例如,对于test1,它将是:

test=pd.DataFrame([[NA,1,NA,3],
                   [NA,NA,NA,2],
                   [2,1.5,-3,1]],
                  columns=['a','b','c','d']
                   )

请注意,不考虑0(即导致NA)。 我可以逐个单元地执行此操作,但是我想知道是否可以在 整个数据帧一次?

我试图做((test>0)&(test1>0)&(test2>0))且可以,但是我不能将它与底片合并。

非常感谢

2 个答案:

答案 0 :(得分:3)

稍有不同的方法-您可以将基础数组堆叠在一起,使用<div class="ad1" style="display:none;"> <div style="color:#fff; font-size:1.5em;"> רוחב : 3 ס"מ ,אורך : 2.5 ס"מ </div> <br /> צבע רקע חלק עליון:<input type='text' id="top" /> <br /><br /> <textarea id="theText" class="txtarea" name="textad" style="width:5cm; height:4.5cm;"> <div id="design1" style="font-size:1em; overflow-y:hidden;" > <div id="bgtop" style="background-color: #fff; border: 1px solid #000; width: 4.7cm; height: 1.8cm;"> <p style="text-align: center;">לרשת קמעונאית גדולה דרושים..</p> </div> <div id="bgbottom" style="background-color: #4286f4; border: 1px solid #000; width: 4.7cm; height:2.8cm; position:relative;"> <p>קופאים , סדרנים נציגי שירות ומכירה !</p> </div> </div> </textarea> <br /><br /> צבע חלק תחתון:<input type='text' id="bottom" /> <br /><Br /> </div> ,然后对所添加的维求和并减少以为np.sign生成掩码。

df.where

答案 1 :(得分:2)

您可以使用required:false和加法进行相等性测试,然后使用np.sign进行此操作:

where

输出:

 test.where(np.sign(test).add(np.sign(test2)).add(np.sign(test3)).abs() == 3)