在函数Python中填充枚举

2024-05-12 19:58:04 发布

您现在位置:Python中文网/ 问答频道 /正文

不知怎么,我在函数中填充枚举时遇到了问题。不知怎么地,我收到以下错误消息:

line 22, in SetRevenueScenarios self.Scenarios[len(self.Scenarios.keys())] = data

AttributeError: 'Market' object has no attribute 'Scenarios'

该代码的目标是将重复收入填入熊猫数据框架中。使用的函数应在收入一次填充后,并用用于取消限制的BU的枚举来标识它。

import csv
from enum import Enum
import pandas as pd

class EmpID(Enum):
    TVs = 1
    Camera = 2
    Computers = 3
    Jeans = 4
    Jacket = 5
    Meat = 6


class Market(object):

    def SetEmployerID(self, empID):
        self.empID = empID

    def SetRevenueScenarios(self, past_revenues, Enum):
        data = pd.Series(past_revenues)
        data = data.convert_objects(convert_numeric=True)
        self.Scenarios[len(self.Scenarios.keys())] = data               

    def GetEmployerID(self):
        return self.empID

    def GetRevenueScenarios(self, scenario_number):
        return self.Scenarios[scenario_number]

#---------------------------------------------------------------

def read_csv(filename):
    market_dict = dict()

    with open(filename, newline='') as csvfile:
        reader = csv.reader(csvfile, delimiter=';')       
        for column in reader:

            if column[0] == "EmpID":
                mark = Market()
                mark.SetEmployerID(column[1])

            if column[0] == "Area":
                if column[1] == "Electronic_TVs": 
                    mark.SetRevenueScenarios(column[1:],EmpID.TVs)

                market_dict[mark.GetEmployerID()] = mark


    return market_dict

#---------------------------------------------------------------

if __name__ == '__main__':
  market_list=read_csv('C:Filiale.TXT')

  for BM_id in market_list:
      print(market_list[BM_id].GetEmployerID())

输入文件看起来如下:

^{pr2}$

Tags: csvinimportselfdataifdefcolumn