2017-07-29 185 views
0

我使用python 3.5和pandas 0.19.2。当用pandas.read_table读取数据时,是否有过滤的方法?

使用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) 
+0

[pandas:read \ _csv加载的过滤行数可能重复](https://stackoverflow.com/questions/13651117/pandas-filter-lines-on-load-in-read-csv) – erasmortg

回答

2

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

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

PS HDF Store允许我们索引数据并按照索引读取数据。所以我们只从磁盘读取我们需要的数据 - 不需要读取从磁盘到内存的所有内容,也不需要过滤内存中的数据。

相关问题