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

如何为带有多级列的Pandas DataFrame赋值?(v1.1.5版本)

解决Pandas 1.1.5中多级列DataFrame的赋值问题

你这段代码用了链式索引(df['a'][['age', 'job']].loc[...]),在Pandas 1.1.5里,这种链式操作返回的是原DataFrame的副本而非视图,所以你给副本赋值的操作根本不会影响原数据,这就是为什么原df里还是零值。

给多级列DataFrame赋值时,要避免链式索引,改用以下几种方式:

  • 用.loc一次性定位目标行和多级列:
df.loc['male', ('a', ['age', 'job'])] = ['30', 'teacher']
  • 直接用元组指定完整的多级列标签:
df.loc['male', [('a', 'age'), ('a', 'job')]] = ['30', 'teacher']
  • 如果要给某一级列下的所有子列赋值,还可以简化写法:
df.loc['male', 'a'] = ['30', 'teacher']

运行以上任意一种代码后,原DataFrame的对应位置都会被正确赋值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:05:21