【发布时间】:2020-04-26 23:04:43
【问题描述】:
我有一本字典,如下所示:
{
'max_depth': [15, 20, 35, 20, 20],
'min_samples_split': [1, 5, 5, 3, 2],
'n_estimators': [50, 50, 50, 10, 10]
}
我想返回以下值,其中值是最常出现的值:
{
'max_depth': 20,
'min_samples_split': 5,
'n_estimators': 50
}
我尝试了以下方法:
def most_freq_param(param_data_col):
out = []
#model params
param_list = list(ast.literal_eval(param_data_col.iloc[1]).keys())
params = {}
max_params = {}
for i in range(len(param_list)): #create empty dict of params
params[param_list[i]] = []
max_params[param_list[i]] = []
for i in range(len(param_data_col)):
out.append(ast.literal_eval(param_data_col.iloc[i]))
for value in out:
for param in params:
for i in range(len(param_list)):
params[param].append(value[param_list[i]])
for param in max_params:
lst = params.get(param)
max_value = max(lst,key=lst.count)
max_params[param].append(max_value)
return max_params
【问题讨论】:
-
你能解决单个列表的问题吗?你有没有尝试解决这个问题?
标签: python list dictionary