创建熊猫嵌套数据字典数据字典的难度

时间:2019-06-03 11:49:55

标签: python

我正在过滤每个特定列表的数据帧,并将其存储到字典中。作为辅助过滤,我是辅助列表,需要将结果存储到嵌套字典中(基于上一个字典)。

我试图声明一个新字典来初始化嵌套字典,但没有成功。我在做什么错了?

def apply_filter (self, severty, modules,sub):
    self.__severty = severty
    self.__modules = modules
    self.__sub = sub
    self.mod_dict = {}
    self.sub_mod_dict = {}

    self.filtered = self.df[self.df['Sevirity'].isin(severty)]
    temp_df = self.filtered   ### temporary df for nested dictionary filtering 
    for m in modules:  ### creates dictionary of df's by module
        self.mod_dict.update({m: self.filtered[self.filtered['Module'].str.contains(m)]})
        #print(self.mod_dict)


    self.filtered = self.filtered[self.filtered['Module'].str.contains('|'.join(modules))]

    self.sub_mod_dict = self.mod_dict        
    for key in self.sub_mod_dict.keys():
        self.sub_mod_dict[key] = {}
        temp_df = self.sub_mod_dict[key] ###declaring temporary dataframe for filtering in the next loop.
        for s in sub:
            self.sub_mod_dict[key][s] = temp_df[temp_df['Module'].str.contains(s)]
            #self.sub_mod_dict[key][s] = self.sub_mod_dict[self.sub_mod_dict[key]['Module'].str.contains(s)]
            #self.sub_mod_dict[key][s] = self.filtered[self.filtered['Module'].str.contains(key)[self.filtered['Module'].str.contains(s)]]


    if len(sub) < len(self.Equimepnt_submodules):

                #print (self.sub_mod_dict)

        self.filtered = self.filtered[self.filtered['Module'].str.contains('|'.join(sub))]

    return self.filtered, self.mod_dict, self.sub_mod_dict

0 个答案:

没有答案