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

问题描述 投票:0回答:1

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

python-3.x pandas csv
1个回答
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)

非常简单,但这确实使融化速度更快。

© www.soinside.com 2019 - 2024. All rights reserved.