No tienes por qué limitarte a los datos tal cual vienen. Puedes añadir nuevas columnas a un DataFrame. A esto también se le llama transformar, mutar o hacer feature engineering.
Puedes crear columnas desde cero, pero también es habitual derivarlas a partir de otras, por ejemplo, sumando columnas entre sí o cambiando sus unidades.
Derivar una columna
Con un dataset de perros, imagina que quieres añadir una nueva columna al DataFrame con la altura de cada perro en metros en lugar de centímetros.
A la izquierda del signo igual, usas corchetes con el nombre de la nueva columna que quieres crear, en este caso, height_m. A la derecha, pones el cálculo.
name breed color height_cm weight_kg date_of_birth height_m
0 Bella Labrador Brown 56242013-07-010.561 Charlie Poodle Black 43242016-09-160.432 Lucy Chow Chow Brown 46242014-08-250.463 Cooper Schnauzer Gray 49172016-09-160.494 Max Labrador Black 59292016-09-160.595 Stella Chihuahua Tan 1822016-09-160.186 Bernie St. Bernard White 77742016-09-160.77Con la tecnología de
Fíjate en que tanto la columna original como la derivada aparecen en el dataframe que has modificado.
Añadir una columna
En este ejemplo, vas a calcular el índice de masa canina y añadirlo como columna a tu dataframe. BMI es el índice de masa corporal, que se calcula dividiendo el peso en kilogramos entre la altura en metros al cuadrado.
dogs["height_m"]= dogs["weight_kg"]/ dogs["height_m"]**2print(dogs.head())Con la tecnología de
name breed color height_cm weight_kg date_of_birth height_m bmi
0 Bella Labrador Brown 56242013-07-010.5676.5306121 Charlie Poodle Black 43242016-09-160.43129.7998922 Lucy Chow Chow Brown 46242014-08-250.46113.4215503 Cooper Schnauzer Gray 49172016-09-160.4970.8038324 Max Labrador Black 59292016-09-160.5983.309394Con la tecnología de
De nuevo, la nueva columna va a la izquierda del igual, pero esta vez el cálculo implica dos columnas.
Añadir una columna con varias transformaciones
La verdadera potencia de pandas aparece cuando combinas todas las habilidades que has aprendido. Vamos a encontrar los nombres de los perros altos y delgados.
Primero, para definir los perros delgados, tomas el subconjunto de perros con un BMI inferior a 100. Después, ordenas por altura en orden descendente para tener arriba a los más altos dentro de los delgados.
Por último, esta vez te vas a quedar solo con las columnas que te interesan.
bmi_lt_100 = dogs[dogs["bmi"]<100]
bmi_lt_100_height = bmi_lt_100.short_values("height_cm", ascending=False)
bmi_lt_100_height[["name","height_cm","bmi"]]Con la tecnología de
name height_cm bmi
4 Max 5983.3093940 Bella 5676.5306123 Cooper 4970.8038325 Stella 1861.728395Con la tecnología de
Aquí puedes ver que Max es el perro más alto con un BMI inferior a 100.
Ejemplo interactivo
En el siguiente ejemplo, añades una nueva columna al DataFrame homelessness, llamada total, con la suma de las columnas individuals y family_members. Después, añade otra columna a homelessness, llamada p_individuals, con la proporción de personas sin hogar en cada estado que son individuos. Por último, imprime el dataframe homelessness.
# Add total col as sum of individuals and family_members
homelessness["total"]= homelessness["individuals"]+ homelessness["family_members"]# Add p_individuals col as proportion of individuals
homelessness["p_individuals"]= homelessness["individuals"]/ homelessness["total"]# See the resultprint(homelessness)Con la tecnología de
Al ejecutar el código anterior, se obtiene el siguiente resultado:
region state individuals family_members state_pop total p_individuals
0 East South Central Alabama 2570.0864.048876813434.00.7481 Pacific Alaska 1434.0582.07351392016.00.7112 Mountain Arizona 7259.02606.071580249865.00.7363 West South Central Arkansas 2280.0432.030097332712.00.8414 Pacific California 109008.020964.039461588129972.00.8...48 South Atlantic West Virginia 1021.0222.018042911243.00.82149 East North Central Wisconsin 2740.02167.058074064907.00.55850 Mountain Wyoming 434.0205.0577601639.00.679Con la tecnología de
Explora el análisis de datos con Python. Los DataFrames de Pandas facilitan la manipulación de tus datos, desde la selección o sustitución de columnas e índices hasta la remodelación de tus datos.
Utiliza Python Pandas y selecciona columnas de los DataFrames. ¡Sigue nuestro tutorial con ejemplos de código y aprende hoy mismo distintas formas de seleccionar tus datos!
No tienes por qué limitarte a los datos tal cual vienen. Puedes añadir nuevas columnas a un DataFrame. A esto también se le llama transformar, mutar o hacer feature engineering.
Puedes crear columnas desde cero, pero también es habitual derivarlas a partir de otras, por ejemplo, sumando columnas entre sí o cambiando sus unidades.
Derivar una columna
Con un dataset de perros, imagina que quieres añadir una nueva columna al DataFrame con la altura de cada perro en metros en lugar de centímetros.
A la izquierda del signo igual, usas corchetes con el nombre de la nueva columna que quieres crear, en este caso,
height_m. A la derecha, pones el cálculo.Fíjate en que tanto la columna original como la derivada aparecen en el dataframe que has modificado.
Añadir una columna
En este ejemplo, vas a calcular el índice de masa canina y añadirlo como columna a tu dataframe. BMI es el índice de masa corporal, que se calcula dividiendo el peso en kilogramos entre la altura en metros al cuadrado.
De nuevo, la nueva columna va a la izquierda del igual, pero esta vez el cálculo implica dos columnas.
Añadir una columna con varias transformaciones
La verdadera potencia de pandas aparece cuando combinas todas las habilidades que has aprendido. Vamos a encontrar los nombres de los perros altos y delgados.
Primero, para definir los perros delgados, tomas el subconjunto de perros con un BMI inferior a 100. Después, ordenas por altura en orden descendente para tener arriba a los más altos dentro de los delgados.
Por último, esta vez te vas a quedar solo con las columnas que te interesan.
Aquí puedes ver que
Maxes el perro más alto con un BMI inferior a 100.Ejemplo interactivo
En el siguiente ejemplo, añades una nueva columna al DataFrame
homelessness, llamadatotal, con la suma de las columnasindividualsyfamily_members. Después, añade otra columna ahomelessness, llamadap_individuals, con la proporción de personas sin hogar en cada estado que son individuos. Por último, imprime el dataframehomelessness.Al ejecutar el código anterior, se obtiene el siguiente resultado:
Pruébalo tú mismo.
Échale también un vistazo al tutorial de DataCamp sobre cómo eliminar columnas en pandas.
Si quieres aprender más sobre cómo añadir columnas nuevas en pandas, mira este vídeo de nuestro curso Data Manipulation with pandas.
Este contenido se ha extraído del curso Data Manipulation with pandas de DataCamp, por Maggie Matsui y Richie Cotton.