搜索pandas.read_fwf获取的排序数据

时间:2016-12-17 20:21:19

标签: python pandas search

我有一个使用pandas.read_fwf获取的内存数据表,数据以升序方式排序(我指的是我感兴趣的虚拟列进行搜索)数据不小,大约300,000行< / p>

Data sample

我想问一下搜索这些数据的最有效方法,考虑到它们已经排序,我有兴趣在两个值之间搜索一个框架,并记住我基本上在搜索一列(行)。

我查看了 bisect 和pandas.Series。搜索排序 但我认为我可能需要应用一些数据转置才能使用它们并认为可能存在一种更简单的方法,因此我要求。

谢谢

1 个答案:

答案 0 :(得分:0)

你尝试过使用面膜吗?即使它没有考虑到排序,我觉得性能足够快。

df = df[(df[col] > val1) & (df[col] < val2)]

否则,这里有一个类似于您正在寻找的解决方案(假设您的df按列col按升序排序):

vals = df[col].iteritems()
val1 = # lower value
val2 = # upper value

for i in range(len(df)):
    val = next(vals)[1]
    if val > val1:
        i1 = i
        break

for i in range(i, len(df)):
    val = next(vals)[1]
    if val < val1:
        i2 = i
        break

df = df.iloc[i1:i2]