Python Pandas sort_values函数在没有任何赋值操作的情况下占用大量内存

Python Pandas sort_values函数在没有任何赋值操作的情况下占用大量内存,python,pandas,Python,Pandas,假设我有一个大的数据帧df,列为'A','B','C'。我使用 df.sort_values('A') 这里df很大,在这个操作之后,主内存的大小急剧增加。我不会将结果保存到任何新变量中。我尝试了gc.collect,但这无助于释放内存。有什么建议吗?好的。。。但是默认情况下,.sort\u values()会返回DF的已排序副本。。。如果您不想要副本,为什么不使用df.sort_values('a',inplace=True)?我相信,与看起来的相反,inplace=True也会创建df的中

假设我有一个大的数据帧df,列为'A','B','C'。我使用

df.sort_values('A')

这里df很大,在这个操作之后,主内存的大小急剧增加。我不会将结果保存到任何新变量中。我尝试了
gc.collect
,但这无助于释放内存。有什么建议吗?

好的。。。但是默认情况下,
.sort\u values()
会返回DF的已排序副本。。。如果您不想要副本,为什么不使用
df.sort_values('a',inplace=True)
?我相信,与看起来的相反,
inplace=True
也会创建df的中间副本,这意味着您在任何情况下都会看到内存使用的峰值,因为在所有场景中都有两个dfs共存。如果您没有将这个新的排序df分配给任何var,那么除了使用排序df执行任何计算之外,我看不到内存使用量会如何增加。即,在单行计算过程中,两个dfs(未排序和已排序)共存。但是,如果排序后的变量没有分配给任何新的变量,那么内存应该立即释放。我也有同样的问题。使用
inplace=True
内存使用会增加10%。它在注释中看起来不太好,但这是内存分析器的输出:
Line#内存使用增量发生次数行内容==========================================================================================================================================================65 5097.0 MiB 450.7 MiB 1 df.排序值([col1,col2],inplace=True)