Considérant un pandas dataframe dans python ayant une colonne nommée time
de type entier, je peux la convertir en datetime
format avec l'instruction suivante.
df['time'] = pandas.to_datetime(df['time'], unit='s')
alors maintenant la colonne a des entrées comme: 2019-01-15 13:25:43
.
Quelle est la commande pour rétablir la chaîne en une valeur d'horodatage entière (représentant le nombre de secondes écoulées depuis 1970-01-01 00:00:00
)?
J'ai vérifié pandas.Timestamp
mais je n'ai pas trouvé d'utilitaire de conversion et je n'ai pas pu utiliser pandas.to_timedelta
pour ça.
Existe-t-il un utilitaire pour cette conversion?
Vous pouvez transtyper en int en utilisant astype(int)
et le diviser par 10**9
pour obtenir le nombre de secondes avant le début de l'époque unix.
import pandas as pd
df = pd.DataFrame({'time': [pd.to_datetime('2019-01-15 13:25:43')]})
df_unix_sec = pd.to_datetime(df['time']).astype(int)/ 10**9
print(df_unix_sec)
Utilisez .dt.total_seconds()
sur un timedelta64
:
import pandas as pd
df = pd.DataFrame({'time': [pd.to_datetime('2019-01-15 13:25:43')]})
# pd.to_timedelta(df.time).dt.total_seconds() # Is deprecated
(df.time - pd.to_datetime('1970-01-01')).dt.total_seconds()
0 1.547559e+09
Name: time, dtype: float64
La façon la plus simple est d'utiliser .value
pd.to_datetime('1970-01-01').value