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

如何使用数字位置索引访问datum中的列(替代列名方式)?

用数字索引访问datum列的可行方法

取决于你的datum是什么数据类型,下面分场景给出解决方案:

场景1:datum是Pandas DataFrame/Series

如果是Pandas的结构,直接用内置的iloc方法就能按位置索引访问:

  • 取DataFrame的第N列(索引从0开始):datum.iloc[:, 1](这里的1对应第二列)
  • 如果是单行的Series对象,直接用datum.iloc[1]就能取到第2个位置的元素

要是你特别想让datum[1]这种写法生效,可以把DataFrame的列名替换成数字:

datum.columns = range(len(datum.columns))

之后datum[1]就可以直接访问对应列了,但这种方式会丢失原列名信息,按需使用。

场景2:datum是自定义类实例

如果datum是你自己定义的类,给它实现__getitem__方法就能支持数字索引:

class Datum:
    def __init__(self, col_values, col_names):
        # 按顺序存储列值,同时保留原列名属性
        self._col_values = col_values
        for name, val in zip(col_names, col_values):
            setattr(self, name, val)
    
    def __getitem__(self, idx):
        # 处理数字索引
        return self._col_values[idx]

实例化后,datum[1]就能直接返回对应位置的列值,同时也能继续用datum.ColumnName访问。

场景3:datum是普通字典(用datum['ColumnName']访问)

Python 3.7+的字典是有序的,你可以直接把值转成列表后按索引取:

list(datum.values())[1]

如果是Python 3.6及以下版本,需要用collections.OrderedDict来保证顺序,之后同样用list(datum.values())[1]访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:27:41