Python 我想根据df2中规定的上限和下限以及一个附加条件来限制df1

Python 我想根据df2中规定的上限和下限以及一个附加条件来限制df1,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个数据帧df1和df2。我希望输出在df2的范围内,有一个附加条件。 df1 df2 所需df Value1 con1 col1 1 30 1 App1 2 23 1 App1 3 13 0 App2 4 14 0 App2 通过以下方式与过滤器一起使用: 当你说范围是多少时,我看不到任何数值范围。你能解释一下你是如何得到所需的数据框架的吗?我指的是DF2TANKS中定义的L_limit和U_l

我有两个数据帧df1和df2。我希望输出在df2的范围内,有一个附加条件。 df1

df2

所需df

   Value1   con1  col1

1    30    1     App1
2    23    1     App1
3    13    0     App2
4    14    0     App2
通过以下方式与过滤器一起使用:


当你说范围是多少时,我看不到任何数值范围。你能解释一下你是如何得到所需的数据框架的吗?我指的是DF2TANKS中定义的L_limit和U_limit的范围。没有使用DataFrame.query还有其他方法吗?
       col1  L_limit  U_limit  condition
0      App1        20     30    1
1      App2        10    15     0
   Value1   con1  col1

1    30    1     App1
2    23    1     App1
3    13    0     App2
4    14    0     App2
df = (df1.merge(df2.rename(columns={'condition':'con1'}), 
               on=['col1','con1'])
       .query("L_limit <= Value1 <= U_limit")
       .drop(['L_limit','U_limit'], axis=1))
print (df)
   Value1  con1  col1
0      30     1  App1
1      23     1  App1
2      13     0  App2
4      14     0  App2
df = df1.merge(df2.rename(columns={'condition':'con1'}), on=['col1','con1'])
     
df = df.loc[df["Value1"].between(df["L_limit"], df["U_limit"]), ['Value1','con1','col1']]
print (df)
   Value1  con1  col1
0      30     1  App1
1      23     1  App1
2      13     0  App2
4      14     0  App2