Données calendaires et temporelles

en langage python

L'essentiel de cette page

Lorsqu'on souhaite faire des graphiques ou des analyses et qu'une de nos variables représente des dates ou des heures. La question se pose aussitôt de la reconnaissance de ces dates.

Prenons des dates et convertissons les en tableau :

dates = ["04-06-2021","05-06-2021","06-06-2021","07-06-2021","10-06-2021","15-06-2021"]

variable_y = [1,2,3,4,6,7]

import pandas as pd

tablo = pd.DataFrame({"temps":dates,"Y":variable_y}) ; print(tablo.head(3))

A ce stade, les dates ne sont pas reconnues comme des données numériques et l'on ne peut tracer Y = f(temps).

On va donc forcer la reconnaissance de ces dates :

from datetime import datetime

tablo.temps = [datetime.strptime(valeur, "%d-%m-%Y") for valeur in tablo.temps]

On va pouvoir alors tracer un graphique

import matplotlib.pyplot as plt

plt.plot(tablo.temps,tablo.Y)

plt.show()

Pour aller plus loin afin d'ajouter d'autres format de dates et y incluant les heures, les minutes (12:00 <=> "%H:%M")...

https://www.programiz.com/python-programming/datetime/strptime

Une fonction utile : datetime.timedelta pour calculer des différences de temps.

Autre approche à développer avec le module astropy (qui gère beaucoup de formats calendaires)

# Données temporelles à convertir

time = [2459046.50004267, 2459046.50008897, 2459046.50013527]


# astropy module de données astronomiques (conversion des données)

from astropy.time import Time

time = Time(time, format = 'jd')


import matplotlib.pyplot as plt

plt.plot(time.plot_date, [1,3,2])

plt.show()

Source externe : https://docs.astropy.org/en/stable/api/astropy.time.TimePlotDate.html