Les variables de type Date Heure

Un type spécial de variable catégorielle est celui qui, au lieu de prendre les étiquettes traditionnelles, comme la couleur (bleu, rouge) ou la ville (Paris, Montpellier), prend les dates et/ou l’heure comme valeurs. Par exemple, la date de naissance (“29-08-1997”, “12-01-2015”), ou la date d’application (“2010-Dec”, “2005-Mars”).

Les variables de date et heure peuvent contenir des dates uniquement, l’heure uniquement, ou la date et l’heure.

Nous ne travaillons généralement pas avec une variable date-heure dans son format brut car :

  • Les variables de date contiennent un grand nombre de catégories différentes
  • Nous pouvons extraire beaucoup plus d’informations des variables date-heure en les prétraitant correctement

En outre, les variables de date contiennent souvent des dates qui n’étaient pas présentes dans l’ensemble de données utilisé pour former le modèle d’apprentissage machine. En fait, les variables de date contiendront généralement des dates placées dans le futur, par rapport aux dates de l’ensemble de données de formation. Par conséquent, le modèle d’apprentissage machine ne saura pas quoi en faire, car il ne les a jamais vues pendant la formation.

import pandas as pd
import numpy as np

import matplotlib.pyplot as plt

data = pd.read_csv('../exportfeature.csv',sep=";",encoding='ANSI')

data.head()

# pandas attribue le type "objet" lors de la lecture des dates
# et les considère comme des chaines.
# Voyons voir

data[['date']].dtypes
date    object
dtype: object

La date est exprimée sous forme d’objets. Par conséquent, les traitements pandas les traiteront comme des chaînes de caractères ou des variables catégorielles.

Pour que pandas puisse les traiter comme des dates, nous devons les reformuler au format date-heure. Voir ci-dessous.

# maintenant, analysons les dates, actuellement codées sous forme de chaînes de caractères, au format date-heure
# cela nous permettra de faire une analyse par la suite

data['date_dt'] = pd.to_datetime(data['date'])

data[['date', 'date_dt']].head()
        date	 date_dt
0	01-01-2016	2016-01-01
1	01-01-2016	2016-01-01
2	01-01-2016	2016-01-01
3	01-01-2016	2016-01-01
4	01-01-2016	2016-01-01
# extrayons le mois et l'année de la variable date

data['mois'] = data['date_dt'].dt.month
data['an'] = data['date_dt'].dt.year

# regardons les montants cumulés par mois et année en fonction de la place

fig = data.groupby(['an','mois', 'place'])['rapport'].sum().unstack().plot(
    figsize=(14, 8), linewidth=2)

fig.set_title('Montants gagnés cumulés par mois')
fig.set_ylabel('Montants')
montant gagne cumule par mois
# On peut aussi essayer de trouver quel est le moins qui rapporte le plus de gains

fig = data.groupby(['mois', 'place'])['rapport'].sum().unstack().plot(
    figsize=(14, 8), linewidth=2)

fig.set_title('Montants gagnés cumulés par mois')
fig.set_ylabel('Montants')
montant gagne cumule par mois 2

Il semble que les mois de juillet et août soient plus profitables que les autres mois.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.