python - 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 解决这个问题吗?也许有积分?
解决方案
您可以像刚才一样先设置最小值。
然后你需要设置一个公差值,比如 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
推荐阅读
- rust - 如何在没有动态调度的情况下表达这个概念?
- javascript - materailize css侧导航没有导航
- javascript - 用 Vue 包装元素
- android - 应用程序在生产中崩溃但不在开发中 - android 应用程序
- python - 如何在 Tkinter 中运行无限循环时使用关闭 (X) 或任何其他按钮
- android - kotlin中times方法的作用是什么?
- javascript - 外部 CSS 文件中带有字体的 Shadow DOM 问题
- python - 有没有办法使用 python 在 tkinter 中保留两个具有不同标签样式的笔记本?
- groovy - 如何使用 SoapUI groovy 运行 vbs 文件
- java - Java swing/awt 中的像素完美图形