首页 > 解决方案 > Pareto 函数在 Julia 中使用 DataFrames 吗?

问题描述

你知道我在哪里可以找到 Julia 中 DataFrames 的 max() min() 函数吗?数据框包括 X、Y、Z 坐标。我想找到具有最高 x & y 坐标的点的最大值。或者我应该用“for循环”和“if条件”来做吗?

1.编辑: 例如,我有不同的 X、Y、Z 坐标点,我实际上想找到 X 坐标最高的点。我已经对数据框进行了排序。但是如何找到具有最高 X 和 Y 坐标的点呢?结合......来自数据中的所有其他点。

2.编辑: 帕累托在这种情况下效果很好,也许这是我的错误解释。如何使用该原理使所有粒子围绕圆圈?目标是获得所有相关的粒子--> 封闭的圆,当然它只是一个圆的近似值。到达圆圈的示例条件:

  1. 点:X & Y 最大值
  2. 点:X & Y 最小值
  3. 点:X 最大值和 Y 最大值/2
  4. 点:X 最大值/2 和 Y 最大值
  5. ...

粒子图

谢谢!

标签: functiondataframejuliapareto-optimality

解决方案


首先生成数据:

julia> using DataFrames, PyPlot

julia> df = DataFrame(x=rand(1000), y=rand(1000));

julia> filter!(sdf -> sdf.x^2+sdf.y^2 < 1, df);

julia> scatter(df.x, df.y);

得到类似的东西: 在此处输入图像描述

现在你建立一个帕累托前沿:

julia> sort!(df, rev=true);

julia> pareto = df[1:1, :];

julia> foreach(row -> row.y > pareto.y[end] && push!(pareto, row), eachrow(df));

julia> scatter(pareto.x, pareto.y);

要得到: 在此处输入图像描述

(你有属于帕累托前沿的点以橙色绘制)


推荐阅读