Générer une chaine de caractères en fonction d'un horaire
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:
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 ! :
Code:
df['Shift'] = df.where(df.between_time(start_time='05:30', end_time='13:30'),'morning')
merci de m'avoir lu ,
merci à tous pour ces contributions,
Merci d'avoir pris le temps de me répondre, ca m'aide bien.