Resuelto: convertir la columna de fecha de nacimiento en pandas de edad

En el mundo actual, el análisis de datos se ha vuelto cada vez más importante, y una de las herramientas más populares que utilizan los analistas y científicos de datos es Python con la biblioteca pandas. Pandas es una poderosa herramienta de análisis y manipulación de datos de código abierto que permite una fácil manipulación de estructuras y series de datos. Un problema común que encuentran los usuarios es convertir las fechas de nacimiento en edades para un análisis más preciso y práctico. En este artículo, profundizaremos en cómo abordar este problema con ejemplos claros y explicaciones de la implementación del código.

Pandas es una herramienta versátil que a menudo implica trabajar con objetos DateTime; este es el caso cuando se trata de fechas de nacimiento. El primer paso para convertir fechas de nacimiento en edad requiere aritmética simple con la biblioteca DateTime. Esto nos permitirá encontrar la edad de las personas calculando la diferencia entre su fecha de nacimiento y la fecha actual..

Comencemos por importar las bibliotecas necesarias:

import pandas as pd
from datetime import datetime

A continuación, considere un conjunto de datos simple que contenga los siguientes datos sobre individuos:

data = {'Name': ['John', 'Paul', 'George', 'Ringo'],
        'Birth_Date': ['1940-10-09', '1942-06-18', '1943-02-25', '1940-07-07']
       }

df = pd.DataFrame(data)
df['Birth_Date'] = pd.to_datetime(df['Birth_Date'])

En el código anterior, estamos convirtiendo la columna 'Birth_Date' en objetos DateTime.

Cálculo de la edad

Ahora, estamos listos para calcular las edades de estos individuos encontrando la diferencia entre su fecha de nacimiento y la fecha actual. Para hacer esto, siga estos pasos:

1. Cree una función llamada 'calculate_age' que tome una fecha de nacimiento como entrada y devuelva la edad de la persona.
2. Aplique esta función a la columna 'Birth_Date' en el DataFrame.

Aquí está el código para implementar la lógica anterior:

def calculate_age(birth_date):
    today = datetime.now()
    age = today.year - birth_date.year - ((today.month, today.day) <
                                          (birth_date.month, birth_date.day))
    return age

df['Age'] = df['Birth_Date'].apply(calculate_age)

En este fragmento de código, creamos una función llamada 'calculate_age' que recibe una fecha de nacimiento como entrada, calcula la fecha actual usando datetime.now() y calcula la edad de la persona restando su año de nacimiento del año actual. si su la fecha de nacimiento no ha ocurrido este año, restamos un año adicional.

Finalmente, aplicamos esta función en la columna 'Fecha_de_nacimiento' usando el método apply(), y las edades calculadas se almacenan en una nueva columna 'Edad' en el DataFrame.

Uso de Numpy y Pandas para el cálculo de la edad

Alternativamente, podemos hacer uso de la poderosa biblioteca numpy en combinación con pandas para esta tarea. Para convertir las fechas de nacimiento a edades usando numpy, sigue estos pasos:

1. Importe la biblioteca numpy.
2. Use la función numpy 'piso' para calcular la edad.

He aquí un ejemplo de cómo hacer esto:

import numpy as np

df['Age'] = np.floor((datetime.now() - df['Birth_Date']).dt.days / 365.25)

Este código usa la función 'piso' de numpy para redondear hacia abajo el resultado de la división de punto flotante de la número de días desde la fecha de nacimiento por 365.25 (teniendo en cuenta los años bisiestos).

En resumen, al aprovechar bibliotecas como pandas y datetime o pandas y numpy, la conversión de las columnas de fecha de nacimiento a la edad dentro de un conjunto de datos se vuelve perfecta. Seguir los pasos explicados y comprender el código provisto en este artículo lo armará con el conocimiento para manipular dichos datos y llevar a cabo un análisis más eficiente y preciso.

Artículos Relacionados:

Deja un comentario