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

如何用Pandas的df.loc访问Excel带子列的单元格值?

解决pandas中用df.loc读取多级列单元格的问题

你的问题出在多级列索引(MultiIndex)的定位方式上:df.loc的列参数如果是多级结构,必须用元组包裹层级标签,而不是分开传递多个参数。

正确代码写法

df.loc['Step1', ('Product1', '%')]

示例验证

如果你的数据结构类似下面的多级列DataFrame,上面的代码可以正常取值:

import pandas as pd

# 构造模拟的多级列数据
columns = pd.MultiIndex.from_tuples([
    ('Product1', 'Value'),
    ('Product1', '%'),
    ('Product2', 'Value'),
    ('Product2', '%')
])
df = pd.DataFrame(
    [[100, 20, 150, 30], [80, 15, 120, 25]],
    index=['Step1', 'Step2'],
    columns=columns
)

# 读取Step1下Product1的%对应值
print(df.loc['Step1', ('Product1', '%')])
# 输出结果: 20

补充说明

  • 如果你的行索引也是多级结构,行标签同样需要用元组指定,比如df.loc[('StepGroup', 'Step1'), ('Product1', '%')]
  • 可以通过df.columns查看当前的列索引结构,确认是否为MultiIndex

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:10:15