首页 > 解决方案 > 使用枚举引用 Pandas 数据框列的语法

问题描述

我正在将 CSV 文件导入 Pandas DataFrame 对象。我创建了一个 Enum,我用它来验证导入的 CSV 的质量,并在应用程序的其他地方引用列。示例如下:

class FooProps(Enum):
    FOO = 'Foo'
    BAR = 'Bar Bar'

    def __str__(self):
        return self.value

data = ds.getFooProperties() # Imports CSV, Validates headers match enum

# Executes operation across Dataframe

someBigNumber = 10000
spam = someBigNumber/ data[str(FooProps.BAR)]  

我是 Python 新手,但我需要通过将枚举自转换为字符串来引用该列,这似乎违反直觉。有没有更自然的方法来构建类,这样我就可以通过 Class.Property 索引列,而无需调用强制转换的额外语法?例如:spam = someBigNumber/ data[FooProps.BAR]

我考虑过构建一个抽象类,但据我了解,那些不存在......只有抽象方法,它并不真正满足要求。

我也想过把它变成一个普通的类,但是我必须声明那个类的一个实例,这似乎也是错误的。

标签: pythonpandas

解决方案


推荐阅读