与Read a small random sample from a big CSV file into a Python data frame非常相关。
我有一个非常大的csv,列patient_id,visit_data
。我想从中读取一小部分样本,但如果我对患者进行抽样,我想对他的所有记录进行抽样。
答案 0 :(得分:2)
如果您想继续使用.csv
,您可以读取块中的文件,选择并连接下面一行(see docs)中每个块的相关行:
patient_id = id
patient = pd.DataFrame()
for chunk in pd.read_csv(filename, chunksize=chunksize):
patient = pd.concat([patient, chunk[chunk.patient_id==id])
但是,我建议通过pandas
查看HDF5 storage,因为这样可以通过对索引数据的查询进行选择,而不是遍历文件。当然还有各种基于sql
的选项(see basic example)