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

Pandas给DataFrame指定列最后一个元素赋值的最简单方法是什么?

可行的更简便无警告实现方案如下:

  • 最短优先推荐方案:直接针对B列的Series调用iat按位置赋值,完全规避链式索引问题,性能也最高
    df['B'].iat[-1] = 1
    
  • 次选简化方案:直接修改B列对应的numpy数组值
    df['B'].values[-1] = 1
    
    注意:如果B列是对象类型、或存在大量缺失值自动转浮点型的场景,优先用第一种iat方案,避免出现类型异常。

补充说明

你之前用到的df.iloc[-1, df.columns.get_loc('B')] = 1已经是iloc语法下的标准无警告写法,没有更简化的空间。而你提到的df.iloc[-1]['B']触发警告的原因是属于链式索引操作,pandas无法判断你拿到的最后一行是原数据的视图还是副本,因此弹出警告提醒可能不会修改原DataFrame。
另外你之前用到的at、loc写法是基于索引标签赋值,如果你的DataFrame索引不是默认的连续整数、或者存在重复索引,可能出现不符合预期的赋值结果,而上述两种按位置赋值的方案不管索引是什么格式,都只会修改最后一行的B列值,适配性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:48:03