我有一个具有以下结构的数据帧df
:
val newidx Code
Idx
0 1.0 1220121127 706
1 1.0 1220121030 706
2 1.0 1620120122 565
它有1000000条线路。
我们总共有600个唯一的Code
值和200000个唯一的newidx
值。
如果我执行以下操作
df.pivot_table(values='val', index='newidx', columns='Code', aggfunc='max')
我得到一个MemoryError
。但这听起来很奇怪,因为生成的数据帧的大小应该是可持续的:20000x600。
这种操作需要多少内存?是否有方法修复此内存错误?
我最近在执行4个数据帧之间的合并时遇到了一个非常类似的问题。
对我有用的是在groupby期间禁用索引,然后合并。
如果@Kartiks answer不起作用,请在分块数据帧之前尝试此操作。
试着看看这是否符合你的记忆:
pivot_table
不幸的是内存非常密集,因为它可能会生成多个数据副本。如果
groupby
不起作用,则必须将数据帧分割成更小的片段。尽量不要分配多次。例如,如果从csv读取:避免多次分配。
相关问题 更多 >
编程相关推荐