Pandas |使用位于另一个数据帧中两个整数值之间的整数筛选DF行

Pandas |使用位于另一个数据帧中两个整数值之间的整数筛选DF行,pandas,dataframe,filter,conditional-statements,Pandas,Dataframe,Filter,Conditional Statements,我有两个数据帧。目标是过滤掉DF1中具有整数值的行,该整数值位于DF2中37行中任何一行的[“开始”]和[“结束”]列中的任何整数之间 DF1: DF2: 我认为有可能使用以下方法: df1[(df1["IntValues"] >=1196482.2 ) & (df1["IntValues"] <= 1216529),(... 36 more conditions)]. 试试这个: df_final=[] for i,j in zip

我有两个数据帧。目标是过滤掉DF1中具有整数值的行,该整数值位于DF2中37行中任何一行的[“开始”]和[“结束”]列中的任何整数之间

DF1:

DF2:

我认为有可能使用以下方法:

df1[(df1["IntValues"] >=1196482.2 ) & (df1["IntValues"] <= 1216529),(... 36 more conditions)].
试试这个:

df_final=[]
for i,j in zip(df2["Begin"],df2["End"]):
    x=df1[(df1["IntValues"] >=i ) & (df1["IntValues"] <= j)]
    df_final.append(x)
    

df_final=pd.concat(df_final,axis=0).reset_index(drop=True)
df_final=df_final.drop_duplicates()
df_final=[]
对于zip中的i,j(df2[“开始”],df2[“结束”]):

x=df1[(df1[“IntValues”]>=i)和(df1[“IntValues”]可能会提供一个较小的样本进行测试。不过,即兴使用可能会有所帮助
df1[(df1["IntValues"] >=1196482.2 ) & (df1["IntValues"] <= 1216529),(... 36 more conditions)].
d1 = {
"string":["String0", "String1", "String2", "String3", "String4", "String5", "String6", "String7", "String8", "String9", "String10", "String11", "String12", "String13", "String14"],
"timestamp":[1168262,1169294, 1184451, 1210449,1210543,1210607, 1644328, 
             1665732, 1694388,1817309,1822872,1825310,2093796,2182923,2209252 ],
"should be in": ["Yes", "Yes", "Yes", "No", "No","No", "yes","yes","yes","no","no", "no","yes","yes","no"]
}

df1 = pd.DataFrame(d1)

d2={
'begin' : [1196482.2,1791819.7,2199564.6],
'end' : [1216529,1834887,2212352]
 }

df2 = pd.DataFrame(d2)
df_final=[]
for i,j in zip(df2["Begin"],df2["End"]):
    x=df1[(df1["IntValues"] >=i ) & (df1["IntValues"] <= j)]
    df_final.append(x)
    

df_final=pd.concat(df_final,axis=0).reset_index(drop=True)
df_final=df_final.drop_duplicates()