【问题标题】:Determining best parameter combination with pandas用 pandas 确定最佳参数组合
【发布时间】:2022-07-05 23:28:01
【问题描述】:

我已经完成了一个参数研究(图像压缩),它采用三个参数(x1、x2、x3)并为 50 个文件生成结果 y(压缩率)。 现在我试图找出哪个参数组合给了我所有文件的最小平均压缩率。我可以使用 python for 循环遍历所有参数组合并存储最佳结果(如下面的最小示例所示)。不过,我认为 pandas API 可能会提供更高效、更简洁的解决方案。

import pandas as pd


df = pd.DataFrame({
    "result": [4, 3, 2, 1],
    "parameter": [1, 0, 1, 0],
    "file": ["A", "A", "B", "B"]
})

min_result = (df["result"][0], None)  # Choosing the first value as starting point
for parameter in [0, 1]:  # Iterating over [0, 1]
    result = df[df["parameter"] == parameter]["result"].mean()  # Mean value of all files
    if result <= min_result[0]:  # Choosing the smallest result
        min_result = (result, parameter)

print(min_result)  # >>> (2.0, 0)

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    看起来你想要一个简单的GroupBy.mean

    out = df.groupby('parameter')['result'].mean()
    

    输出:

    parameter
    0    2.0
    1    3.0
    Name: result, dtype: float64
    
    最低:
    idx = out.idxmin()
    min_result = (out[idx], idx)
    

    输出:(2.0, 0)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-10
      • 1970-01-01
      • 2011-04-17
      • 2015-08-21
      • 2013-08-19
      相关资源
      最近更新 更多