1
votes

Python, convertir la chaîne d'horodatage en entier MMDDHH

J'ai une chaîne d'horodatage telle que:

2019-01-04 21:15:00

Je voudrais convertir cela en un entier de la forme MMDDHH, arrondi à l'heure la plus proche. Dans ce cas, le résultat serait:

10421

La solution datetime Python est préférée, mais Pandas fonctionne aussi.


3 commentaires

Vous avez besoin d'un arrondi à l'heure la plus proche, n'est-ce pas?


Oui ... il semble que la réponse acceptée a été modifiée. Conserver la réponse acceptée pour l'utilisation de datetime sur Pandas et la conversion en entier.


Si vous préférez python, vous pouvez supprimer la balise pandas la prochaine fois.


3 Réponses :


-1
votes

On dirait que ceci a déjà une réponse sur StackOverflow ..

Conversion d'un objet datetime en python entier < / p>

Je l'ai essayé et cela fonctionne pour moi.


1 commentaires

Ce n'est pas la même question. Il y a aussi une certaine conversion, oui, mais l'arrondissement de cette question rend votre discussion liée ne suffit pas pour une réponse complète.



5
votes

Faire avec round + strftime

s=pd.Series(['2019-01-04 21:15:00','2019-01-04 21:15:00','2019-01-04 21:15:00'])

Entrée de données

pd.to_datetime(s).dt.round('H').dt.strftime('%m%d%H')
Out[249]: 
0    010421
1    010421
2    010421
dtype: object


1 commentaires

Si propre, cela devrait être la réponse imo.



2
votes

Utilisez la bibliothèque datetime : XXX

Pour une solution avec arrondi, essayez cette fonction:

>>> def datestr2int(datestring):
...   d = dt.datetime.strptime(datestring, '%Y-%m-%d %H:%M:%S')
...   if d.minute >= 30:
...     d = d + dt.timedelta(minutes=30)
...   else:
...     pass
...   s = dt.datetime.strftime(d, '%m%d%H')
...   return int(s)
... 
>>> datestr2int('2019-01-04 21:15:00')
10421
>>> datestr2int('2019-01-04 21:30:00')
10422
>>> datestr2int('2019-01-04 23:35:00')
10500


0 commentaires