如何在Polars中正确使用shrink_to_fit()方法?
关于Polars中shrink_to_fit()的正确用法
Polars的shrink_to_fit()是原地操作,作用是释放DataFrame里未被使用的内存空间,优化内存占用。你之前用df = df.shrink_to_fit()没生效的问题在于:这个方法执行后返回的是None,赋值操作会把原DataFrame覆盖成None,反而起不到优化作用。
正确用法
直接调用方法即可,不需要重新赋值给原变量:
df.shrink_to_fit()
实际示例
可以结合内存冗余操作(比如删列、过滤行)来验证效果:
import polars as pl # 创建测试DataFrame df = pl.DataFrame({ "a": range(100000), "b": [float(i) for i in range(100000)], "c": ["test"] * 100000 }) # 执行会产生内存冗余的操作 df = df.drop("c") df = df.filter(pl.col("a") < 50000) # 原地优化内存 df.shrink_to_fit() # 查看优化后的内存占用 print("优化后内存大小:", df.estimated_size())
这个方法主要针对DataFrame经过修改(删列、过滤、切片等)后,底层内存缓冲区存在未使用空间的场景,调用后会让内存使用更紧凑。
内容的提问来源于stack exchange,提问作者yws
相关产品推荐
相关产品推荐

