DataFrames
La estructura de datos que se usa en pandas
es el dataframe. Se
puede crear de varias formas, pero la más común y sencilla es leer un
conjunto de datos desde un archivo de texto, como lo hicimos
anteriormente.
Habiendo descargado el archivo Nacimientos_1998.csv
, se carga en un
DataFrame que se llama df
así:
import pandas as pd
df = pd.read_csv('Nacimientos_1998.csv',sep=';',encoding="ISO-8859-1")
Particularidades de cargar los DataFrames
-
Hay diferentes funciones para leer los datos de un archivo. Todas comienzan por
read_
. -
csv
quiere decir “archivo separado por comas”, pero también se puede separar por punto y coma, o por tabulador. Si pandas no reconoce las columnas lo más problable es que tengamos que especificar otro separador. Esto se hace con la opciónsep
. -
El segundo error posible es la codificación. En
encoding
. Usualmente no se especifica. Si hay errores se puede cambiar en la opciónencoding
. O se puede usar un programa externo para guardar el archivo con la codificación correcta. En libreoffice:File ➡️ Save as (opción ⬛ “edit filter settings”).
Características de los DataFrames
Se pueden averiguar las características de los dataframes así:
-
Su forma, en (filas,columnas), con:
df.shape
.Ejemplo: en nuestro caso,
(720984, 33)
, luego son 720984 registros de 33 variables. -
Los nombres de las columnas:
df.columns
Ejemplo: en este caso:
Index(['cod_dpto', 'cod_munic', 'areanac', 'sit_parto', 'nom_inst', 'cod_inst', 'sexo', 'peso_nac', 'talla_nac', 'ano', 'mes', 'aten_par', 't_ges', 'numconsul', 'tipo_parto', 'mul_parto', 'apgar1', 'apgar2', 'gru_san', 'edad_madre', 'est_civm', 'niv_edum', 'codpres', 'codptore', 'codmunre', 'area_res', 'n_hijosv', 'fecha_nacm', 'n_emb', 'seg_social', 'edad_padre', 'niv_edup', 'profesion'], dtype='object')
-
Los primeros registros:
df.head()
, por defecto saca 5, pero se puede cambiar.Ejemplo: en este caso:
cod_dpto cod_munic areanac sit_parto nom_inst cod_inst sexo ... n_hijosv fecha_nacm n_emb seg_social edad_padre niv_edup profesion
0 27 6 1 1 HL LASCARIO BARBOZA A 270060013.0 1 ... 1 NaN 1 9 15 9 1
1 27 73 1 1 CSCC BAGADO 270730019.0 2 ... 99 NaN 99 9 99 9 2
2 27 75 2 2 NaN NaN 2 ... 1 NaN 1 9 25 2 3
3 27 361 2 1 CS ANDAGOYA 273610065.0 1 ... 1 NaN 1 9 19 3 1
4 27 361 2 1 CS ANDAGOYA 273610065.0 2 ... 1 NaN 1 9 33 3 1
[5 rows x 33 columns]
I
- Los últimos registros:
df.tail()
Out[14]:
cod_dpto cod_munic areanac sit_parto nom_inst cod_inst sexo peso_nac ... area_res n_hijosv fecha_nacm n_emb seg_social edad_padre niv_edup profesion
720979 73 168 1 2 NaN NaN 2 9 ... 9.0 99 NaN 99 9 99 9 9
720980 17 524 1 2 NaN NaN 2 9 ... 9.0 99 NaN 99 9 48 9 4
720981 70 124 9 2 NaN NaN 1 9 ... 9.0 99 NaN 99 9 33 9 9
720982 13 760 9 2 NaN NaN 1 9 ... 9.0 99 NaN 99 9 99 9 9
720983 76 606 9 9 NaN NaN 1 9 ... 9.0 99 NaN 99 9 99 9 4
[5 rows x 33 columns]
Accediendo a variables (columnas)
En principio, cada columna corresponde a una variable.
Para acceder a los registros se puede:
-
Usar corchetes
[]
, dentro de los cuales se escribe el nombre de la columna. -
Usar el punto, seguido del nombre de la columna.
Funciones sobre las variables
Estas funciones son comunes a numpy, entonces no son únicas de los DataFrames, pero para nosotros basta con mencionarlas aquí. Mencionammos unas pocas, hay muchas más. Revisar la bibliografía de numpy y pandas.
-
unique: indica los valores que están en un conjunto de datos.
-
Por ejemplo en la lista: [1,1,1,3,1,2], los valores que están son 1,2,3
-
En el DataFrame que estamos usando, existe una variable llamada
cod_dpto
, que corresponde al código del departamento. Si queremos saber cuáles códigos de departamento están en el conjunto de datos que tenemos, podemos teclear:df.cod_dpto.unique()
en este caso se obtiene:
array([27, 52, 66, 63, 73, 95, 19, 17, 8, 20, 88, 70, 44, 47, 13, 81, 54, 68, 5, 23, 76, 86, 15, 41, 50, 25, 18, 85, 11, 94, 91, 99, 97])
lo que quiere decir que usamos la función
unique
, en la columna (variable)cod_dpto
, y obtuvimos como resultado un arreglo con esos valores.
-
-
min: indica el valor mínimo.
- Ejemplo:
df.cod_dpto.min()
- Ejemplo:
-
max: indica el valor máximo
- Ejemplo:
df.cod_dpto.max()
- Ejemplo:
-
otras funciones estadísticas, como
kurt()
para la curtosis,skew()
para la asimetría,mean()
para el promedio aritmético ymode()
para la moda, entre otras.
Material Complementario
-
Presentación “Comprender los datos”, del Laboratorio Analítica de Datos https://youtu.be/cMNKus4Bp2U
-
Presentación “Unir Bases”, del Laboratorio analítica de datos https://youtu.be/02zqIwUgBV8
-
Presentación “Planeación del modelo” del Laboratorio Analítica de datos https://youtu.be/GhGZLfxFXqM