[英]How to use pandas dataframe as condition for other dataframe
Say I have dataframe A:假设我有 dataframe A:
A B C
lower 1 0 -5
upper 2 2 0
and dataframe B:和 dataframe B:
A B C
sa 5 1 -2
sb 3 0 2
sc 1 -5 1
How can I use dataframe A as a condition for dataframe B, so that df B's cells are within the upper
and lower
values of df A. The ideal output is this: (first cell is explanatory)如何使用 dataframe A 作为 dataframe B 的条件,以使 df B 的单元格在 df A 的
upper
和lower
范围内。理想的 Z78E6221F6393D1356681DB398F1 是解释性的:
A B C
sa (5>=1)&(5<=2)=False True True
sb False True False
sc True False False
You can chain mask with compare selected rows by DataFrame.loc
in A
with DataFrame.ge
and DataFrame.le
by &
for bitwise AND
:您可以链接掩码与比较选定的行
DataFrame.loc
在A
与DataFrame.ge
和DataFrame.le
按位&
AND
Notice - columns names have to match in both DataFrame
s.注意 - 列名必须在两个
DataFrame
中匹配。
df = B.ge(A.loc['lower']) & B.le(A.loc['upper'])
#alternative
#df = (B>= A.loc['lower']) & (B <= A.loc['upper'])
print (df)
A B C
sa False True True
sb False True False
sc True False False
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.