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

如何在Pandas中获取DataFrame子集的引用以修改原数据?

解决Pandas子集修改原DataFrame的问题

如果你想修改原DataFrame里的匹配记录,没必要先把子集存成单独变量再改——因为pandas默认会返回副本,改了也同步不到原数据。

最直接可靠的方法是直接在原DataFrame上通过loc定位修改:

# 将匹配Serial_Nbr的行的指定列设置为新值
record_set.loc[record_set['Serial_Nbr'] == someSerialNumber, '目标列名'] = 新值

这种方式会直接改动原record_set里的对应数据,完全绕开副本的问题。

如果确实需要先获取可修改的子集视图(不推荐,容易触发pandas的视图/副本判断坑),可以尝试以下方式:

  • 确保用loc单一索引定位(避免链式索引,比如record_set[mask]['列名']这种写法肯定是副本)
  • 可以检查子集的_is_view属性(这是pandas内部属性,仅供参考):如果sub_set._is_view为True,说明是原数据的视图,修改子集会同步到原DataFrame;如果为False,则是副本,修改无效。

但还是强烈建议用第一种直接修改原DataFrame的方式,更稳妥且不易出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 12:12:10