Подтвердить что ты не робот

Преобразование фрейма данных с меткой в ​​массив в julia

У меня есть кадр данных с заголовком в Julia, но мне нужно преобразовать это в массив для некоторой фильтрации, есть и аналогичная запись, которую люди предлагают используя:

iris[:, 1:3]

чтобы получить массив из dataframe, но этот метод не будет работать с dataframe с заголовком, любое предложение, что я должен делать?

формат данных:

FP | C1 | Cz | C2 ....
*  | *  | *  | *  ....
.  | .  | .  | .  ....
.  | .  | .  | .  ....
.  | .  | .  | .  ....
4b9b3361

Ответ 1

Вы пробовали convert(Matrix, iris[:,1:3])? например,

julia> using DataFrames

julia> df = DataFrame(a = 1:4, b = 1:4, c = randn(4), d = randn(4))
4×4 DataFrame
│ Row │ a     │ b     │ c        │ d          │
│     │ Int64 │ Int64 │ Float64  │ Float64    │
├─────┼───────┼───────┼──────────┼────────────┤
│ 1   │ 1     │ 1     │ 1.72172  │ -0.377729  │
│ 2   │ 2     │ 2     │ 0.206415 │ -0.266014  │
│ 3   │ 3     │ 3     │ 1.03785  │ -0.0317582 │
│ 4   │ 4     │ 4     │ 0.632473 │ -0.409014  │

julia> convert(Matrix, df[:,1:3])
4×3 Array{Float64,2}:
 1.0  1.0  1.72172
 2.0  2.0  0.206415
 3.0  3.0  1.03785
 4.0  4.0  0.632473

Ответ 2

Принятый ответ хорошо подходит для ответа на вопрос, как указано.

Если единственная причина, по которой вы хотите преобразовать DataFrame в массив, - это его фильтрация, однако, возможно, стоит изучить методы, доступные для фильтрации объектов DataFrame напрямую. Для некоторых примеров см. https://dataframesjl.readthedocs.io/en/latest/subsets.html и https://dataframesjl.readthedocs.io/en/latest/split_apply_combine.html.

(Извините, если это лучше подходит для комментария, чем ответ - недостаточно репутации, чтобы комментировать здесь еще.)

Ответ 3

Обновление метода convert, теперь, convert(::Type{Array}, df::AbstractDataFrame) устарело в пользу:

using DataFrames
convert(Matrix, df)

Что эквивалентно Matrix(df)

Ответ 4

Это не работает в Julia 0.7 и выше. Вместо этого, попробуйте Matrix(df) и ознакомьтесь с руководством здесь.

Ответ 5

convert(Array, iris[:,1:3]) работал для Julia версии 1.1.1