使用 500GB 内存时,Pandas pd.melt 在取消旋转 3.5 GB csv 时抛出内存错误

abh*_*wal 5 csv python-3.x pandas read.csv

使用 500GB 内存时,Pandas pd.melt 在取消旋转 3.5 GB csv 时抛出内存错误。是否有任何解决方案/功能可用于 unpivot 巨大的 CSV 文件?当前的 csv 有超过 5000 列。

ldo*_*doe 6

我在同样的问题上苦苦挣扎,偶然发现了你的话题。这是我对 @run-out 建议的实现(按块迭代并连接):

pivot_list = list()
chunk_size = 100000

for i in range(0,len(df_final),chunk_size):
    row_pivot =df_final.iloc[i:i+chunk_size].melt(id_vars=new_vars,value_vars=new_values)
    pivot_list.append(row_pivot)

df = pd.concat(pivot_list)
Run Code Online (Sandbox Code Playgroud)

非常简单,但这确实使融化速度加快了很多。