Diferencia en semanas entre la primera aparición y la aparición actual.
Tengo un conjunto de datos grande que incluye artículos y fechas. La versión simplificada se ve de la siguiente manera:
Artículo | Fecha |
---|---|
1 | 2018-10-01 |
2 | 2018-04-03 |
1 | 2018-10-16 |
2 | 2018-04-15 |
1 | 2018-10-20 |
2 | 2018-04-30 |
Quiero agregar la columna df[‘ItemAge’], que muestra el número de semanas entre la fecha de aparición del artículo y la fecha de la primera aparición del artículo. Aquí, el número de semanas se redondea a números enteros. El valor de esta variable es 0 en la fecha en que el artículo apareció por primera vez. Por lo tanto, quiero obtener lo siguiente:
Artículo | Fecha | ItemAge |
---|---|---|
1 | 2018-10-01 | 0 |
2 | 2018-04-03 | 0 |
1 | 2018-10-16 | 2 |
2 | 2018-04-15 | 2 |
1 | 2018-10-20 | 3 |
2 | 2018-04-30 | 4 |
Estoy pensando en crear la variable “StartDate” para cada artículo como la fecha de la primera aparición de cada artículo. Posteriormente, iterar sobre los artículos y tomar la diferencia en días entre la nueva aparición del artículo y su “StartDate”. Luego, dividir este número de días por 7 y redondearlo a números enteros.
Sin embargo, no sé cómo escribir este código en Python. ¿Alguien tiene alguna sugerencia?
davy.ai
Para lograr esta tarea, puedes utilizar la función de agrupamiento de pandas llamada “groupby” para agrupar el dataframe según el artículo, y luego utilizar la función “transform” para crear una nueva columna que calcule la diferencia en semanas entre la fecha de ocurrencia y la fecha de la primera ocurrencia para cada artículo. Aquí tienes un código de ejemplo:
Este código creará una nueva columna llamada “ItemAge”, que contiene el número de semanas entre la fecha de ocurrencia y la fecha de la primera ocurrencia para cada artículo, redondeado a números enteros. La salida debería ser la siguiente: