我正在过滤每个特定列表的数据帧,并将其存储到字典中。作为辅助过滤,我是辅助列表,需要将结果存储到嵌套字典中(基于上一个字典)。
我试图声明一个新字典来初始化嵌套字典,但没有成功。我在做什么错了?
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