En este artículo, vamos a convertir la fecha de nacimiento en la edad en el marco de datos de pandas. Usaremos Pandas y el paquete datetime para convertir la fecha de nacimiento en edad. Para convertir la fecha de nacimiento a la edad, primero convertimos la fecha dada al formato correcto usando la función strptime() y luego restamos el año actual con el año de la fecha de nacimiento y verificamos si el mes de nacimiento y la fecha de nacimiento son mayores que el mes actual y la fecha actual si es cierto restamos uno de lo contrario se resta cero.
Acercarse:
- Primero, usamos la función strptime para identificar el formato de fecha dado en la fecha, el mes y el año.
- Luego usamos la función de hoy para obtener la fecha de hoy.
- Para obtener la edad restamos el año de nacimiento del año actual. Esto da la edad en años pero, para calcular aún más la edad precisa, verificamos si el mes y la fecha de nacimiento son mayores que el mes actual y la fecha actual y, si esta condición es cierta, restamos 1 del resultado final, incluso si el año actual es pasó pero aún no ha llegado su mes o fecha de nacimiento.
Ejemplo 1: En este ejemplo, convertiremos una sola fecha dada en edad.
Python3
from datetime import datetime, date born='26/01/2000' print("Born :",born) #Identify given date as date month and year born = datetime.strptime(born, "%d/%m/%Y").date() #Get today's date today = date.today() print("Age :", today.year - born.year - ((today.month, today.day) < (born.month, born.day)))
Producción:
Born : 26/01/2000 Age : 21
Explicación: En el código anterior, usamos el paquete datetime e importamos datetime y time. Usamos la función strptime para identificar la fecha almacenada en la variable nacida, es decir, identificamos el 26/01/2000 como fecha/mes/año. Luego usamos la función today() para obtener la fecha de hoy. Para obtener la edad usamos la fórmula hoy.año – nacido.año – ((hoy.mes, hoy.día) < (nacido.mes, nacido.día). En esto, restamos un año actual del año de nacimiento, y luego si la fecha y el mes actuales no han pasado, la fecha y el mes de nacimiento restamos uno ya que su fecha y mes de nacimiento aún están por llegar.
Ejemplo 2: ahora usaremos un marco de datos que tiene una columna de fecha de nacimiento y lo convertiremos en edad y agregaremos esa columna a ese marco de datos.
Python3
import pandas as pd from datetime import datetime, date # Creating a list of date of birth dob = {'DOB': ['13/05/1986', '12/12/2018', '23/04/2006']} # Creating dataframe df = pd.DataFrame(data = dob) # This function converts given date to age def age(born): born = datetime.strptime(born, "%d/%m/%Y").date() today = date.today() return today.year - born.year - ((today.month, today.day) < (born.month, born.day)) df['Age'] = df['DOB'].apply(age) display(df)
Producción:
Explicación: En el código anterior, se usaron pandas y el paquete de fecha y hora. Creamos un dataframe de DOB con tres filas de fechas diferentes. Para calcular la edad, creamos una función de edad que usa la función strptime para identificar la fecha en formato de fecha/mes/año. Luego usamos la función today() para obtener la fecha de hoy. Para obtener la edad usamos la fórmula hoy.año – nacido.año – ((hoy.mes, hoy.día) < (nacido.mes, nacido.día). En esto, restamos un año actual del año de nacimiento, y luego si la fecha y el mes actuales no han pasado la fecha y el mes de nacimiento, restamos uno ya que su fecha de nacimiento y el mes aún están por llegar. Devolvemos la edad en esta función, que se agrega como una nueva fila dentro de la columna ‘Edad’. Más tarde, mostrar el marco de datos.
Publicación traducida automáticamente
Artículo escrito por devangj9689 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA