Convertir une colonne de datetimes à l'époque en Python
Je suis actuellement un problème avec Python. J'ai une Pandas DataFrame et l'une des colonnes est une chaîne de caractères avec une date.
Le format est :
"%Y-%m-%d %H:%m:00.000". Par exemple : "2011-04-24 01:30:00.000"
J'ai besoin de convertir l'ensemble de la colonne d'entiers. J'ai essayé d'exécuter ce code, mais il est très lent et j'ai quelques millions de lignes.
for i in range(calls.shape[0]):
calls['dateint'][i] = int(time.mktime(time.strptime(calls.DATE[i], "%Y-%m-%d %H:%M:00.000")))
Avez-vous les gars savent comment faire pour convertir l'ensemble de la colonne à l'époque ?
Merci d'avance !
OriginalL'auteur marcsarfa | 2016-02-25
Vous devez vous connecter pour publier un commentaire.
convertir la chaîne en
datetime
à l'aide deto_datetime
puis soustraire datetime 1970-1-1 et appeldt.total_seconds()
:Vous pouvez voir que la conversion de cette valeur de retour, vous obtiendrez le même temps:
De sorte que vous pouvez soit ajouter une nouvelle colonne ou remplacer:
MODIFIER
meilleure méthode comme suggéré par @Jeff:
Vous pouvez voir qu'il est nettement plus rapide
df.date.astype('int64')//1e9
, mais est légèrement plus obsureCheers, ont mis à jour ma réponse
Qu'est-ce que
dt
? Ce n'était pas clair pour moi.ah que c'est un alias de la
datetime
module :import datetime as dt
sera mise à jour pour que cela soit clairOriginalL'auteur EdChum
De la Les Pandas de la documentation sur le travail avec des données de séries chronologiques:
Cela donnera à l'époque le temps en millisecondes.
OriginalL'auteur ares