Python 我想根据df2中规定的上限和下限以及一个附加条件来限制df1
我有两个数据帧df1和df2。我希望输出在df2的范围内,有一个附加条件。 df1 df2 所需dfPython 我想根据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
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