Python 如果输入值的行在两列范围内,则返回该行

Python 如果输入值的行在两列范围内,则返回该行,python,pandas,Python,Pandas,我在pandas中有一个这样格式的数据帧 Building ID Column 2 Column 3 Building 1 100 200 Building 2 201 302 Building 3 303 404 .... 我希望能够输入一个值,如果该值介于第2列和第3列中的数字之间,我希望返回关联的建筑ID 所以我想要的输出是这样的 Input Number: 205 Building ID C

我在pandas中有一个这样格式的数据帧

Building ID    Column 2    Column 3
Building 1     100         200
Building 2     201         302
Building 3     303         404
....
我希望能够输入一个值,如果该值介于第2列和第3列中的数字之间,我希望返回关联的建筑ID

所以我想要的输出是这样的

Input Number: 205



Building ID    Column 2    Column 3
Building 2     201         302
甚至只是

Input Number: 205

Building ID
Building 2

我不确定我是否需要一个条件语句,或者类似中间函数的语句来获得我想要的结果。感谢您可以通过使用
df.loc
之间使用
,并且有两个条件,一个条件是
输入的\u编号
大于或等于
第2列
,另一个条件是小于或等于
第3列

df = pd.DataFrame({'Building ID': {0: 'Building 1', 1: 'Building 2', 2: 'Building 3'},
 'Column 2': {0: 100, 1: 201, 2: 303},
 'Column 3': {0: 200, 1: 302, 2: 404}})

input_number = int(input('Number'))

df.loc[(input_number >= df['Column 2']) & (input_number <= df['Column 3'])]

# or if you prefer the built in greater than less than methods:
# df.loc[(df['Column 2'].le(input_number)) & (df['Column 3'].ge(input_number))]
data.csv文件:

Building ID,Column 2,Column 3
Building 1,100,200
Building 2,201,302
Building 3,303,404
代码:

将numpy导入为np
作为pd进口熊猫
df=pd.read\u csv(“data.csv”)
打印(df)
数字=205

newdf=df[(df['Column 2']谢谢!这回答了我的问题。我的另一个问题是有没有办法将其创建为函数?例如:
def function(num)return(num)?
我会在一个新问题中问这个问题,以便其他人可以看到它。谢谢你,克里斯,我刚刚问了。
Building ID,Column 2,Column 3
Building 1,100,200
Building 2,201,302
Building 3,303,404
import numpy as np
import pandas as pd

df = pd.read_csv("data.csv")
print(df)
number = 205
newdf = df[(df['Column 2'] <= number) & (number <= df['Column 3'])]
print(newdf)