Python 过滤数据帧中给定值介于两列值之间的所有行
我已经有了这个dataframe,它包含两个带浮点数的列,我想基于这个值10.9提取一个dataframe,它不在dataframe上,因此它将返回10.9范围内的dataframe,请参见下表 预期结果:当我使用3.10进行过滤时,我希望得到下面的数据帧,提前谢谢 如果要经常执行此操作,请生成:Python 过滤数据帧中给定值介于两列值之间的所有行,python,pandas,dataframe,Python,Pandas,Dataframe,我已经有了这个dataframe,它包含两个带浮点数的列,我想基于这个值10.9提取一个dataframe,它不在dataframe上,因此它将返回10.9范围内的dataframe,请参见下表 预期结果:当我使用3.10进行过滤时,我希望得到下面的数据帧,提前谢谢 如果要经常执行此操作,请生成: val = 3.1 idx = pd.IntervalIndex.from_arrays( df['Start_time(in sec)'], df['End_time(in secs)'])
val = 3.1
idx = pd.IntervalIndex.from_arrays(
df['Start_time(in sec)'], df['End_time(in secs)'])
idx.contains(val)
# array([False, False, False, False, True])
df[idx.contains(val)]
Words Start_time(in sec) End_time(in secs) Time_per_words
4 about 3.0 3.2 6.2
否则,此一次性布尔索引操作就足够了:
df[(df['Start_time(in sec)'] <= val) & (val <= df['End_time(in secs)'])]
Words Start_time(in sec) End_time(in secs) Time_per_words
4 about 3.0 3.2 6.2
如果要经常执行此操作,请生成:
val = 3.1
idx = pd.IntervalIndex.from_arrays(
df['Start_time(in sec)'], df['End_time(in secs)'])
idx.contains(val)
# array([False, False, False, False, True])
df[idx.contains(val)]
Words Start_time(in sec) End_time(in secs) Time_per_words
4 about 3.0 3.2 6.2
否则,此一次性布尔索引操作就足够了:
df[(df['Start_time(in sec)'] <= val) & (val <= df['End_time(in secs)'])]
Words Start_time(in sec) End_time(in secs) Time_per_words
4 about 3.0 3.2 6.2
喜欢区间指数法。感谢您的回复,这里不起作用,df[df['Start_timein sec']val是单值还是列表?@nath我假设前者是单值。非常感谢@cs5,它终于起作用了,也许是我的一个错误没有起作用,因为我使用了一个旧变量,它是一个包含值的列表,我没有去掉它df[df['Start\u timein sec']喜欢区间指数法。感谢您的回复,这里不起作用,df[df['Start_timein sec']val是单值还是列表?@nath我假设前者是单值。非常感谢@cs5,它终于起作用了,也许是我的一个错误没有起作用,因为我使用了一个旧变量,它是一个包含值的列表,我没有去掉它df[df['Start\u timein sec']