Je suis nouveau dans python et pandas et même si j'ai fait beaucoup de recherches sur les intervalles, je n'ai pas pu trouver de solution à mon problème, j'espère que quelqu'un pourra m'aider
Voici un échantillon de mon DF
df = pd.DataFrame(
data=[['Mel Gibson', 'German', '2021-9-23 14:22:38', 301 ],
['Jim Carrey', 'German', '2021-9-23 14:27:39', 1041 ],
['Mel Gibson', 'German','2021-9-24 13:33:22',12]],
columns=['specialist', 'Language', 'Interval Start', 'status_duration']
)
df['Interval Start'] = pd.to_datetime(df['Interval Start'])
Ce que je veux faire, c'est transformer la durée des statuts en intervalles de 15 minutes et les regrouper par spécialiste et par jour.
Le résultat que je souhaite obtenir devrait être le suivant :
df = pd.DataFrame(
data=[['Mel Gibson', 'German', '2021-9-23 14:15:00', 301 ],
['Jim Carrey', 'German', '2021-9-23 14:15:00', 141 ],
['Jim Carrey', 'German', '2021-9-23 14:30:00', 900 ],
['Mel Gibson', 'German','2021-9-24 13:30:00',12]],
columns=['specialist', 'Language', 'Interval Start', 'status_duration']
)
En gros, je dois diviser les secondes de la durée de l'état en intervalles de 15 minutes jusqu'à ce qu'il ne reste plus de durée.
Edit :
Mes données d'origine sont les suivantes :
df = pd.DataFrame(
data=[['Mel Gibson', 'German', '2021-9-23 14:22:38', 301 ],
['Mel Gibson', 'German', '2021-9-23 14:27:40', 4678 ],
['Mel Gibson', 'German','2021-9-24 13:33:22',12]],
columns=['specialist', 'Language', 'Interval Start', 'status_duration']
)
df['Interval Start'] = pd.to_datetime(df['Interval Start'])
Le code d'Henry me donne une sortie pour la première ligne seulement, la deuxième ligne est ignorée.
De même, si un appel a commencé à 10:35:00, l'intervalle (10:30-10:45) ne peut pas dépasser 600 secondes car il ne reste que 10 minutes avant le début de l'appel.