我有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))
且可以,但是我不能将它与底片合并。
非常感谢
答案 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)