Функция Парето с DataFrames в Julia?

Вы знаете, где я могу найти функции max() min() для DataFrames в Julia? Фрейм данных включает координаты X,Y,Z. Я хочу найти максимальное значение для точки с наивысшими координатами x и y. Или мне следует сделать это с помощью "цикла for" и "if condition"?

1. РЕДАКТИРОВАТЬ: Например, у меня есть разные точки с координатами X,Y,Z, и я действительно хочу найти точку с самой высокой координатой X. Я сделал это с сортировкой фрейма данных. Но как насчет того, чтобы найти точку с наивысшими координатами X и Y? В сочетании... из всех остальных точек данных.

2. РЕДАКТИРОВАТЬ: Парето отлично работает в этом случае, возможно, это было мое неправильное объяснение. Как использовать этот принцип, чтобы все частицы вращались по кругу? Цель состоит в том, чтобы получить все связанные частицы -> замкнутый круг, конечно, это только приближение к кругу. Примеры условий для достижения круга:

  1. Точка: максимум по X и Y
  2. Точка: минимум X и Y
  3. Точка: максимум X и максимум Y /2
  4. Точка: X максимум /2 и Y максимум
  5. ...

Спасибо!

1 ответ

Сначала сгенерируйте данные:

       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);

получить:

(у вас есть точки, принадлежащие фронту Парето, выделенные оранжевым цветом)

Другие вопросы по тегам