转置大型csv文件

时间:2017-04-05 17:46:56

标签: python bash matlab csv large-files

我有一个大的CSV文件~15GB,180万列和5K行。我需要对文件进行转置,或者是否有一种有效的方法来逐列读取文件。在python 2.7,bash或Matlab中寻找时间和内存有效的解决方案。

follower_count

1 个答案:

答案 0 :(得分:0)

在这里,这是一种有效的方法,可以使用熊猫通过迷你批处理行:

import pandas as pd
NCOLS = 1.8e6  # The exact number of columns

batch_size = 50
from_file = 'my_large_file.csv'
to_file = 'my_large_file_transposed.csv'
for batch in range(NCOLS//batch_size + bool(NCOLS%batch_size)):
    lcol = batch * batch_size
    rcol = min(NCOLS, lcol+batch_size)
    data = pd.read_csv(from_file, usecols=range(lcol, rcol))
    with open(to_file, 'a') as _f:
        data.T.to_csv(_f, header=False)