0

使用Pandas我已阅读通过 FTP 访问的 CSV 文件。第一列Code值的排序如下:

PA0000357, PA0000358, PA0000359, PA0000359, PA0000360, PA0000380 ...

代码可能有重复的数字。我需要返回与给定代码匹配的所有行。由于数字已排序,我想使用bisect,但我不确定它是否或如何与重复代码一起使用。

data = pd.read_csv(r, sep=',', index_col=None, parse_dates=['Date'], 
                   usecols=['Code', 'PT Code', 'Value'])

data是一个数据框,其中包含Code我需要搜索的列。值得使用bisect还是我应该去使用in?数据量约为 500 行。

4

1 回答 1

0

这是二进制搜索的经典问题。您应该更改范围搜索(不仅仅是中间索引)。例如:PA0000357、PA0000358、PA0000359、PA0000359、PA0000360、PA0000380 ...

如果遇到 PA0000359,你应该左右运行找到正确的范围。因为您使用的是 Py,所以请使用 in/find。(500 是小数字)

于 2019-07-19T10:35:56.460 回答