web-dev-qa-db-fra.com

conversion de dataframe avec label en tableau en julia

J'ai un cadre de données avec en-tête dans Julia, mais j'ai besoin de convertir cela en tableau pour filtrer, il y a des posts similaires que les gens suggèrent d'utiliser:

iris[:, 1:3]

pour obtenir un tableau à partir de dataframe mais cette méthode ne fonctionnera pas sur dataframe avec en-tête, toute suggestion que dois-je faire?

format de données:

FP | C1 | Cz | C2 ....
*  | *  | *  | *  ....
.  | .  | .  | .  ....
.  | .  | .  | .  ....
.  | .  | .  | .  ....
9
mj sameri

Avez-vous essayé convert(Array, iris[:,1:3])? par exemple.

Julia> using DataFrames

Julia> df = DataFrame(a = 1:4, b = 1:4, c = randn(4), d = randn(4))
4×4 DataFrames.DataFrame
│ Row │ a │ b │ c         │ d         │
├─────┼───┼───┼───────────┼───────────┤
│ 1   │ 1 │ 1 │ 0.192261  │ -0.613842 │
│ 2   │ 2 │ 2 │ -0.964262 │ 0.951377  │
│ 3   │ 3 │ 3 │ -0.222804 │ 0.357736  │
│ 4   │ 4 │ 4 │ -0.43415  │ 0.501033  │

Julia> convert(Array, df[:,1:3])
4×3 Array{Real,2}:
 1  1   0.192261
 2  2  -0.964262
 3  3  -0.222804
 4  4  -0.43415 
14

La réponse acceptée fait du bon travail en répondant à la question comme indiqué.

Si votre seule raison de vouloir convertir le DataFrame en un tableau est de le filtrer, il peut être utile de consulter les méthodes disponibles pour filtrer directement les objets DataFrame. Voir, pour quelques exemples, https://dataframesjl.readthedocs.io/en/latest/subsets.html et https://dataframesjl.readthedocs.io/en/latest/split_apply_combine.html .

(Désolé par avance si cela convient mieux pour un commentaire que pour une réponse - pas assez de réputation pour commenter ici pour l'instant.)

7
Julian Wolf

Une mise à jour de la méthode convert, maintenant, convert(::Type{Array}, df::AbstractDataFrame) est déconseillée en faveur de:

using DataFrames
convert(Matrix, df)

Qui est équivalent à Matrix(df)

1

Cela ne fonctionne pas dans Julia 0.7 et plus. Au lieu de cela, essayez Matrix(df) et consultez le tutoriel ici .

0
Tyler R.