Python – Contador de días para vacaciones y días transcurridos en df
Soy nuevo en la programación.
Quiero crear 4 columnas en un dataframe existente de vacaciones en Francia:
- “Cuenta atrás” en días hasta el primer día de las próximas vacaciones.
- “Nombre de las próximas vacaciones” relacionado con la cuenta atrás.
- “Cuenta regresiva” en días desde el último día de las vacaciones pasadas más tempranas.
- “Nombre de las vacaciones pasadas” relacionado con la cuenta regresiva.
El dataframe existente incluye:
- “fecha” (objeto).
- “vacanceszonaA” (bool) Verdadero o Falso si en la zona A (Francia se divide en 3 zonas para las vacaciones) en esta fecha hay vacaciones.
- “vacanceszonaB” (bool) Verdadero o Falso si en la zona B (Francia se divide en 3 zonas para las vacaciones) en esta fecha hay vacaciones.
- “vacanceszonaC” (bool) Verdadero o Falso si en la zona C (Francia se divide en 3 zonas para las vacaciones) en esta fecha hay vacaciones.
- “nom_vacances” (objeto) Nombre de las vacaciones si es Verdadero, vacío si es Falso.
Mi objetivo es añadir esas 4 columnas por zona para contar cuántos días faltan para las próximas vacaciones y cuántos días han pasado desde las vacaciones pasadas para la zona.
He extraído una lista de fechas para cada zona donde vacanceszonaXX era Verdadero.
Ejemplo a duplicar para cada zona:
Necesito crear una columna “Cuenta atrás zona A” que encuentre la fecha más cercana en la lista.
En la columna “Nombre de las próximas vacaciones” el nombre de las vacaciones relacionadas con la cuenta atrás.
En la columna “Cuenta regresiva zona A” que encuentre la fecha pasada más cercana en la lista.
En la columna “Nombre de las vacaciones pasadas” el nombre de las vacaciones relacionadas con la cuenta regresiva.
Pensé que crear una lista para cada zona sería la forma más fácil de obtener la información que necesito, pero estoy abierto a la forma más sencilla de resolver el problema.
Este enlace y este otro no incluyen la información en un dataframe.
Intenté esto pero no funciona…
df['Cuenta atrás zona A'] = date_list_a.index[date_list_a.index.get_loc(df, method='nearest')]
TypeError: ‘>’ not supported between instances of ‘int’ and ‘tuple’
¡Gracias de antemano por tu ayuda!
davy.ai
Estimado/a nuevo/a programador/a,
Crear las cuatro columnas que mencionaste se puede lograr utilizando Python y sus bibliotecas, especialmente pandas y datetime. Aquí te muestro una manera de hacerlo:
Ten en cuenta que la función
zip()
se utiliza para separar los resultados de la funciónapply()
en dos columnas separadas.Espero que esto te ayude a alcanzar tu objetivo. No dudes en contactarme si tienes alguna pregunta. ¡Buena suerte en tu viaje de programación!
Saludos cordiales,
Un experto en IT especializado en Python, pandas y datetime.