我想读取一个大数据矩阵(目前正在测试90 * 85000,后来测试150000 * 850000)并对列进行一些操作。
为了加快我尝试分块的事情。这大大加快了(~100x)读取过程,但由于我必须连接用于列式操作的块,我在后续步骤中失去所有加速。
我的问题:
- 有没有办法在列维度而不是行维度中添加块?
- 对于我想要实现的目标,还有其他方法吗?
\编辑:一些定时运行:
答案 0 :(得分:0)
您可以将columns
和rows
:
def chunks(lst, chunksize):
for i in range(0, len(lst), chunksize):
yield lst[i:i+chunksize]
col_chunksize, row_chunksize = 1000, 1000
for use_cols in chunks(columns, col_chunksize):
for chunk in pd.read_csv(file_path, chunksize=row_chunksize, use_cols=use_cols)
process_chunk # e.g. pd.concat() to the process all rows of use_cols