python读取大型(几个G)的csv
作者:野牛程序员:2023-07-24 07:49:29python阅读 3606
Python可以使用不同的库来读取大型CSV文件,包括几个G的CSV文件。常用的库有pandas
和dask
。
使用pandas:
import pandas as pd # 用read_csv()函数读取CSV文件,可以指定chunksize参数来逐块读取大文件 # 这里的chunksize表示每次读取的行数 chunksize = 1000000 # 一次读取100万行 csv_file_path = 'path_to_your_large_csv.csv' # 逐块读取并处理数据 for chunk in pd.read_csv(csv_file_path, chunksize=chunksize): # 在这里对数据进行处理,chunk是一个DataFrame对象 # 例如可以对每个chunk进行分析,或者合并结果等操作 # ... # 或者也可以一次性读取所有数据,但是需要足够大的内存 # df = pd.read_csv(csv_file_path)
使用dask: Dask是一个并行计算库,可以处理比内存大得多的数据集。它支持类似pandas的API,因此可以很方便地处理大型CSV文件。
首先需要安装dask库:
pip install dask
然后可以使用以下代码读取大型CSV文件:
import dask.dataframe as dd # 使用dask读取大型CSV文件,自动进行分块读取和处理 csv_file_path = 'path_to_your_large_csv.csv' df = dd.read_csv(csv_file_path) # 可以进行各种操作,dask会自动并行处理数据 # 例如计算统计信息、筛选数据、聚合等 # 但是在大多数操作之前,需要调用compute()来执行计算 result = df.groupby('column_name').mean().compute()
注意:使用dask时,大部分操作返回的是延迟计算的结果,只有在调用compute()
方法时才会真正执行计算。
无论使用pandas还是dask,都需要根据实际情况调整chunksize或采用其他分块处理的方法,确保内存和计算资源的充足。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
