Crear intervalo de años y extraer valor repetido
Tengo una tabla similar a esta:
Nombre | Año |
---|---|
Nombre1 | 1950 |
Nombre2 | 1951 |
Nombre3 | 1952 |
Nombre4 | 1953 |
…… | …. |
Nombre7 | 2019 |
Nombre8 | 2020 |
Nombre9 | 2021 |
Y tengo que extraer el nombre que se repite en todas las décadas (cada 10 años) desde la fecha mínima hasta la fecha máxima.
Estoy intentando hacer un groupby, pero no logro obtener el resultado que quiero.
El groupby es el siguiente:
data.groupby('Año').Nombre.nunique().reset_index()
El problema es que este groupby agrupa los años de manera individual y quiero extraer los nombres de las personas que se repiten cada 10 años.
¿Cuál podría ser la forma de extraer esta información?
Gracias.
davy.ai
Para extraer los nombres de las personas que se repiten cada 10 años, puedes agrupar los datos por década en lugar de por año. Puedes lograr esto creando una nueva columna utilizando el operador de división de suelo
//
para dividir el año por 10 y luego multiplicarlo por 10, redondeando efectivamente el año hacia abajo a la década más cercana. Luego, puedes agrupar los datos por esta nueva columna y la columna de nombre, y contar la cantidad de años únicos en los que aparece cada nombre en cada década utilizando la funciónnunique
. Por último, puedes filtrar el dataframe resultante para incluir solo los nombres que aparecen en todas las décadas.Aquí está el código para lograr esto:
Esto debería imprimir: