我正在读取一个csv到Pandas DataFrame中,但是读取大约需要35分钟。 csv约为120 GB。我找到了一个名为cudf
的模块,该模块允许使用GPU DataFrame,但仅适用于Linux
。 Windows
是否有类似内容?
chunk_list = []
combined_array = pd.DataFrame()
for chunk in tqdm(pd.read_csv('\\large_array.csv', header = None,
low_memory = False, error_bad_lines = False, chunksize = 10000)):
print(' --- Complete')
chunk_list.append(chunk)
array = pd.concat(chunk_list)
print(array)
答案 0 :(得分:1)
您有GPU吗?如果是,请查看BlazingSQL(Python软件包中的GPU SQL引擎)。
在本文中,描述Querying a Terabyte with BlazingSQL。 BlazingSQL支持从CSV中读取。
获取GPU数据框后,将其转换为Pandas数据框
# from cuDF DataFrame to pandas DataFrame
df = gdf.to_pandas()
答案 1 :(得分:0)
如果您确实想将其读入pandas api
之类的dataframe
中,也可以查看dask-dataframe。
要阅读csvs
,这将使您的io任务跨多个内核和节点并行进行。与120 GB
csv一样,这可能会通过跨节点扩展来减轻内存压力,您也可能也受内存限制。
另一个不错的选择可能是使用arrow。