首页 > 解决方案 > Python/Pandas:在数据框或字典中查找最小值

问题描述

我在 for 循环中创建了一个字典,它给了我以下 192 个结果:

dic_aic = {0: 16.83024400288158,
1: 10.580792750644934,
2: 10.460203246761916,
3: 10.44309674334913,
4: 10.425859422774248,
        ...
191: 10.273789550619007,
192: 10.272853618268071}

当我用 pandas 绘制出来时,我得到以下信息:

aic_df = pd.DataFrame(aic_dic.items(), columns=['Order', 'AIC'])
aic_df = aic_df.set_index('Order')
aic_df[1:].plot()

在此处输入图像描述

 min(aic_dic, key=aic_dic.get)

我的 dic 中的最小值为 192。但正如您在图片中看到的那样,AIC 在 192 和例如 96 之间的差异非常小,只有 10.272853618268071 - 10.28435108717606 = 0.01149 ... 我正在尝试找到优化值大约 96 岁。有人知道如何用 python 解决这个问题吗?也许有积分?

标签: pythonpandasoptimization

解决方案


您可以像刚才一样先设置最小值。

然后你需要设置一个公差值,比如 0.1。

然后您可以返回满足 min +- 容差的最小键值

minimum = min(aic_dic, key=aic_dic.get)  #your code here
tolerance = 0.1 #could be higher lower up to you
possible_answers = []
for key,value in your_dict.items():
    if minimum + tolerance > value:
          possible_answers(key)
print(min(possible_answers)) # you can adjust here as according to your need

推荐阅读