J'ai des données d'heure dans une colonne et j'essaie de comprendre comment puis-je l'obtenir au format datetime
eg: da = pd.to_datetime(100, format='%H%M') output: '10:00:00'
Ma question est de savoir comment les obtenir au format datetime: p >
la sortie doit être:
1. da = pd.to_datetime(330, format='%H%M') output: '03:30:00' 2. d= str(datetime.timedelta(minutes = 55 )) output : '0:55:00'
essayé:
20:00:00 21:00:00 23:00:00 23:55:00 00:00:00 00:01:00 00:05:00 00:10:00 01:00:00 01:05:00 03:30:00
Mais si j'applique 1. à 100, cela donne 10 heures.
2000 2100 2300 2355 0 1 5 10 100 105 330
3 Réponses :
IIUC str.rjust
pd.to_datetime(s.astype(str).str.rjust(4,'0'),format='%H%M').dt.time Out[41]: 0 20:00:00 1 21:00:00 2 23:00:00 3 23:55:00 4 00:00:00 5 00:01:00 6 00:05:00 7 00:10:00 8 01:00:00 9 01:05:00 10 03:30:00 Name: x, dtype: object
peut-être que zfill pourrait être sympa
Essayez ,
pd.to_datetime(df['time'].astype(str).str.zfill(4), format = '%H%M').dt.time 0 20:00:00 1 21:00:00 2 23:00:00 3 23:55:00 4 00:00:00 5 00:01:00 6 00:05:00 7 00:10:00 8 01:00:00 9 01:05:00 10 03:30:00
à l'origine, quand j'ai chargé les données de test, c'était dtype: int64 Je pensais changer cela en int64, mais ensuite j'ai réalisé que to_datetime avait besoin d'une chaîne. :)
Depuis le code novice, je rends les choses plus explicites et j'ajoute les lettres de formatage % H et % M info:
df['cname'] = pd.to_datetime(df['cname'].astype(str).str.zfill(4), format = '%H%M').dt.time print(df['cname']) # %H Hour (24-hour clock) as a zero-padded decimal number. 07 # %M Minute as a zero-padded decimal number. 06
p>
Votre question reçoit déjà trois réponses! Agréable.