有没有办法在使用pandas.read_table读取数据时进行过滤?

时间:2017-07-29 14:18:19

标签: python pandas

我使用的是python 3.5和pandas 0.19.2。

使用pandas.read_table,有没有办法在读取数据时进行过滤?

在下面的示例中,我读入了我的初始数据框,然后根据条件对我想要的行进行了子集化。有没有办法做到这一点,或以任何方式大幅加快下面的例子?我无法在pandas.read_table文档(link)中看到任何内容,它显示了如何加快速度。

目前大约需要3分钟。

import pandas as pd
from datetime import datetime

start_time = datetime.now()
# reading table
df = pd.read_table('https://download.bls.gov/pub/time.series/ce/ce.data.0.AllCESSeries', sep='\t', header=0)
# subsetting
df = df[df['series_id'].str.contains("CEU0000000001")]

end_time = datetime.now()
run_time = end_time-start_time

print(run_time)

1 个答案:

答案 0 :(得分:2)

如果您想加速从磁盘读取速度,请考虑使用备用存储格式。

我会考虑使用HDF5或羽毛格式。

PS HDF Store允许我们索引数据并按索引读取数据。因此,我们将仅从磁盘读取我们需要的数据 - 无需读取从磁盘到内存的所有内容并过滤内存中的数据。