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

如何使用pandas.df.at[]批量修改DataFrame列中所有元素?

高效批量设置DataFrame列值的方法

针对你的需求,有两种高效且简便的方法可以一次性将A列所有元素设为100,完全不用逐行操作:

方法一:直接列赋值

这是最简洁且性能最优的方式,利用Pandas的矢量化操作特性,底层会做优化,大数据集下速度极快:

df['A'] = 100

方法二:使用loc批量赋值

如果你需要更明确地指定行范围(这里是所有行),也可以用loc,同样是矢量化操作,效率和直接列赋值几乎一致:

df.loc[:, 'A'] = 100

为什么这两种方法比逐行at更好?

你之前用的逐行df.at[index, 'A']属于逐个元素赋值,本质是循环操作,在大型数据集下会产生大量Python层面的循环开销,运行效率极低。而上面的两种方法都是矢量化批量操作,直接在底层(C语言级别)处理整列数据,能大幅减少运行时间,完全适配你的大数据集场景。

另外你提到iloc会增加运行时间,其实如果是用df.iloc[:, 0] = 100这种整列赋值的方式,效率也不会差,但相比直接列名赋值或loc,可读性稍差(需要记住列的索引位置),所以更推荐前两种方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 21:35:19