8 Análisis de datos
8.1 El paquete DataFrames.jl
El principal paquete para análisis de datos es DataFrames.jl
que proporciona herramientas para trabajar con conjuntos de datos en formato de tabla de forma similar a pandas en Python o data.frames y dplyr en R.
En conjunción con este paquete es frecuente utilizar también alguno de los siguientes paquetes:
- FreqTables.jl. Funciones para la construcción de tablas de frecuencias.
- Statistics.jl. Funciones para los principales estadísticos descriptivos.
- HypothesisTests.jl Funciones para los contrastes de hipótesis paramétricos y no paramétricos más comunes.
- GLM.jl. Funciones para modelos lineales generales.
- MultivariateStats.jl. Funciones para análisis multivariante.
- MLJ.jl. Funciones para los principales algoritmos de aprendizaje automático.
8.1.1 Creación de DataFrames
Para crear un DataFrame su utiliza la siguiente función:
DataFrame(x1=v1, x2=v2, ...)
: Devuelve el DataFrame que formado por las columnas de los vectoresv1
,v2
, etc, con los nombresx1
,x2
, etc, respectivamente.
using DataFrames
> df = DataFrame(Nombre = ["María", "Luis", "Carmen"], Edad = [22, 18, 20])
julia3×2 DataFrame
Row │ Nombre Edad String Int64
│
─────┼───────────────1 │ María 22
2 │ Luis 18
3 │ Carmen 20
8.1.2 Creación de DataFrames desde una url
Para crear una DataFrame a partir de un fichero csv en la nube, se utiliza la siguiente función del paquete CSV.jl
:
CSV.read(download(url), DataFrame)
: Devuelve el DataFrame que resulta de importar el fichero csv con la urlurl
.
using DataFrames, CSV
> df = CSV.read(download("https://raw.githubusercontent.com/asalber/manual-python/master/datos/colesteroles.csv"), DataFrame)
julia14×6 DataFrame
Row │ nombre edad sexo peso altura colesterol String Int64 String1 Int64? String7 Int64?
│
─────┼───────────────────────────────────────────────────────────────────────────────1 │ José Luis Martínez Izquierdo 18 H 85 1,79 182
2 │ Rosa Díaz Díaz 32 M 65 1,73 232
3 │ Javier García Sánchez 24 H missing 1,81 191
4 │ Carmen López Pinzón 35 M 65 1,70 200
5 │ Marisa López Collado 46 M 51 1,58 148
6 │ Antonio Ruiz Cruz 68 H 66 1,74 249
7 │ Antonio Fernández Ocaña 51 H 62 1,72 276
8 │ Pilar Martín González 22 M 60 1,66 missing
9 │ Pedro Gálvez Tenorio 35 H 90 1,94 241
10 │ Santiago Reillo Manzano 46 H 75 1,85 280
11 │ Macarena Álvarez Luna 53 M 55 1,62 262
12 │ José María de la Guía Sanz 58 H 78 1,87 198
13 │ Miguel Angel Cuadrado Gutiérrez 27 H 109 1,98 210
14 │ Carolina Rubio Moreno 20 M 61 1,77 194