我有一个大的数据集,csv格式几乎是4 GB。但我不需要整个数据集,我需要一些特定的专栏。是否可以阅读某些特定的列而不是使用Python Panda读取整个数据集?它会提高读取文件的速度吗?
非常感谢您的建议。
答案 0 :(得分:0)
如果您有4 GB的内存,请不要担心(编程内存不足的解决方案所需的时间不值得)。使用pd.read_csv
读取整个数据集,然后将子集分配到您需要的列。如果您没有足够的内存并且您确实需要逐行读取文件(即逐行),请修改this代码以仅将感兴趣的列保留在内存中。
如果你有足够的内存并且你的问题是你有这种格式的多个文件,那么我建议使用multiprocessing
包来并行化任务。
from muliprocessing import Pool
pool = Pool(processes = your_processors_n)
dataframeslist = pool.map(your_regular_expression_readin_func, [df1, df2, ... dfn])