Pandas 检查一个数据帧中一列中的值是否在另一个数据帧中两列中的值之间的范围内

Pandas 检查一个数据帧中一列中的值是否在另一个数据帧中两列中的值之间的范围内,pandas,Pandas,我有两个数据帧 df1 = pd.DataFrame({'chr':[1,1],'pos':[100, 200]}) df2 = pd.DataFrame({'chr':[1,1,2],'start':[90,110,90],'stop':[110,120,110]}) 如果: df1['chr']中的值与df2['chr']中的值相同 和 值df['pos']介于df2['start']和df['stop']中的值之间 从上面的数据框中,结果应为: chr pos start

我有两个数据帧

df1 = pd.DataFrame({'chr':[1,1],'pos':[100, 200]})  
df2 = pd.DataFrame({'chr':[1,1,2],'start':[90,110,90],'stop':[110,120,110]})
如果:
df1['chr']中的值与df2['chr']中的值相同 和
值df['pos']介于df2['start']和df['stop']中的值之间

从上面的数据框中,结果应为:

chr  pos    start    stop  
1    100    90    110  
谢谢你的帮助

您可以使用以下命令:

您可以尝试以下方法:

df = df1.merge(df2,on='chr',how='left')
df.loc[(df['pos'] >= df['start']) & (df['pos'] <= df['stop'])]
df=df1.merge(df2,on='chr',how='left')

df.loc[(df['pos']>=df['start']]和(df['pos']一个pos可以有多个启动和停止,您想使用哪一个?感谢您指出这一点。我想要所有启动和停止行。下面的答案选择pos在启动和停止范围内的所有行
df = df1.merge(df2,on='chr',how='left')
df.loc[(df['pos'] >= df['start']) & (df['pos'] <= df['stop'])]