熊猫:根据抽样政策,从大型CSV中读取一小部分随机样本

时间:2015-12-31 17:04:09

标签: python csv pandas random

Read a small random sample from a big CSV file into a Python data frame非常相关。

我有一个非常大的csv,列patient_id,visit_data。我想从中读取一小部分样本,但如果我对患者进行抽样,我想对他的所有记录进行抽样。

1 个答案:

答案 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)