Bonjour,
Je voudrai ajouter à mon data-frame une colonne qui précise sous forme de chaine de caractère une période dans la journée.
Ca fait bien 16 heures que je boucle sur le sujet et je ne parviens pas à m'en sortir. Pourriez-vous m'aider s'il vous plait ?
je voudrais donc ajouter une colonne 'Shift' qui prend les valeurs suivantes :
'morning' si 05:30 < hh:mm =< 13:30
'afternoon' si 13:30 < hh:mm =< 21:30
'night' si 21:30 < hh:mm =< 05:30
Voici le code pour générer un dataframe représentatif de ma situation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 import pandas as pd import numpy as np import datetime as dt import time dates=['21/12/2021 10:05', '20/12/2021 14:10', '19/12/2021 23:01', '18/12/2021 00:00'] sales=[200,300,400,200] df = pd.DataFrame({'Date':dates ,'Sales':sales}) df['Date'] = pd.to_datetime(df['Date'],format='%d/%m/%Y %H:%M' ) print(df)
Date Sales people 0 2021-12-21 10:05:00 200 jean 1 2021-12-20 14:10:00 300 pierre 2 2021-12-19 23:01:00 400 jerome 3 2021-12-18 00:00:00 200 raoul
Date datetime64[ns] Sales int64 people object dtype: object
Ma piste principale est ce type d'instruction mais je ne parviens pas à la faire fonctionner ! :
merci de m'avoir lu ,
Code : Sélectionner tout - Visualiser dans une fenêtre à part df['Shift'] = df.where(df.between_time(start_time='05:30', end_time='13:30'),'morning')
Partager