You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Pandas DataFrame中更新数据时遇内存错误,求排查方法

问题分析与解决方法

错误原因

你遇到的内存爆炸问题,大概率是因为DataFrame存在重复索引——当用loc配合布尔索引操作时,Pandas会触发隐式的广播机制,试图生成一个行数平方级的临时数组(也就是你看到的439547×439547的数组),直接超出了内存上限。

解决办法

不需要纠结loc的写法,换更简单直接的方式,或者先处理索引问题:

方法1:直接用replace(最推荐)

这是Pandas里替换单一值最稳妥的方式,完全不会触发内存问题:

df['RATING'] = df['RATING'].replace('BB2', 'BB')

方法2:先重置索引再用loc

如果一定要用loc的写法,先把重复索引去掉:

# 重置索引,丢弃原来的重复索引
df = df.reset_index(drop=True)
# 再执行你的替换代码
df.loc[df["RATING"]=="BB2", "RATING"] = "BB"

方法3:验证索引问题

先确认是不是重复索引导致的,执行这条代码看输出:

print(df.index.is_unique)

如果返回False,就说明确实是重复索引引发的广播问题,用方法2处理即可。

内容的提问来源于stack exchange,提问作者IamaNOOB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 12:14:52