Generar Nuevas Columnas
Se puede generar una nueva columna de un DataFrame símplemente usando el nombre nuevo de la columna. Por ejemplo, si tenemos el siguiente DataFrame llamado notas:
notas = pd.DataFrame({'Name': ['Claudia', 'Pedro', 'Juan', 'Adriana', 'Laura'],
'Código': [1, 4, 5, 6, 10],
'Nota1': [93, 55, 89, 79, 89],
'Nota2': [78, 45, 99, 80, 81]})
Para generar una nueva columna que tenga el promedio de las columnas Nota1 y Nota2, lo podemos hacer de la siguiente forma:
notas['promedio'] = (notas['Nota1'] + notas['Nota2'])/2
En ésta fórmula se toma la suma de las dos columnas, dividida entre dos, y se le asigna a la nueva variable promedio.
Crear una Serie de un tipo dado
Para crear una serie, basada en una serie existente, cambiando el tipo, se usa el método .astype. Por ejemplo, en el arreglo notas la variable Código es numérica:
notas.Código
Genera:
0 1
1 4
2 5
3 6
4 10
Name: Código, dtype: int64
Aquí indica que el tipo es int64. Podríamos querer que en lugar de los valores de un dígito se reporten como dos dígitos, con un cero, tenemos que usar la columna tipo texto. La serie tipo caracter, se crea así:
notas.Código.astype("str")
Si además queremos añadir los ceros, usamos:
notas.Código.astype("str").str.pad(2,fillchar='0')
Aquí se indica que la variable es de 2 caracteres y que se llena con ceros. Finalmente se crea la nueva columna:
notas['cod']=notas.Código.astype("str").str.pad(2,fillchar='0')
Seleccionar registros usando el método loc
El método loc permite identificar los valores de un arreglo por su índice.
Por ejemplo, si queremos identificar los valores de las notas mayores a 60:
notas.loc[notas["promedio"]>60,"aprueba"] = True
notas.loc[notas["promedio"]<=60,"aprueba"] = False
Aquí el .loc indica que se trabaja con los registros de la columna promedio. Si el valor es mayor a 60, se asigna True, si es menor o igual, se asigna False a la variable “aprueba”. Si no se incluye el nombre de la variable se cambiarían todos los valores del registro.
Ejercicio
- Cargue los datos de la base de nacimientos del dane para el año 98.
- Identifique la columna
edad_padre. Si el valor es 99, cambíelo porpd.Na. - Identifique la columna
cod_munic. Construya una nueva variable del mismo DataFrame, que sea de 3 caractéres, de tipo texto, llenándo con 0. Llámelacód_mun_str. - Identifique la comuna
cod_dpto. Construya una variable del miso DataFrame, de topo texto, 2 caracteres, llena con 0, llamelacod_dpto_str - Genere una nueva variable, llamada código, que sea el resultado de unir las variables
cód_mun_strycod_dpto_str.
Más información
https://jakevdp.github.io/PythonDataScienceHandbook/03.04-missing-values.html
Tablas Pivote
https://jakevdp.github.io/PythonDataScienceHandbook/03.09-pivot-tables.html
Bibliografía
-
Python Data Science Handbook. Jake VanderPlas.
-
Data Science for Public Policy. Chen, Rubin, Cornwall.
-
https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html
-
https://www.geeksforgeeks.org/python/how-to-fix-settingwithcopywarning-in-pandas/