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

如何为包含2个名称的列执行pandas set_index操作(附报错)

报错原因

你这段代码触发语法错误有两个核心问题:

  • pandas不存在pd.df_bm这个内置方法,不管是创建DataFrame还是设置索引,都没有这个接口,属于方法名书写错误
  • Python语法不允许在小括号()内直接写键: 值形式的字典结构,字典必须用大括号{}包裹,解释器识别到冒号位置不符合语法规则,就直接抛出了SyntaxError。
正确实现方案

你要实现给包含多个列名的DataFrame设置索引的操作,分两种常见场景写代码即可:

  • 从零创建DataFrame并设置多列索引
import pandas as pd

# 构造数据集,字典用大括号包裹,键是列名,值是列对应的数据
data = {
    "player": [1, 2],
    # 补充你需要的第二列、第三列数据,这里以score列举例
    "score": [88, 92],
    "round": [1, 2]
}
# 调用pd.DataFrame创建数据框,再链式调用set_index传入要设为索引的列名列表
df_bm = pd.DataFrame(data).set_index(["player", "round"])
  • 对已存在的DataFrame设置多列索引
# 假设df_bm是你已经加载完成、包含目标列的DataFrame
# 把需要设为索引的列名按顺序放在列表里传给set_index即可
df_bm = df_bm.set_index(["player", "你的第二个目标列名"])

补充说明:set_index默认不会修改原始DataFrame,如果你想直接在原数据上生效不用重新赋值,可以加参数inplace=True,写法为df_bm.set_index(["player", "你的第二个目标列名"], inplace=True)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 00:12:41