Панды конвертируют из даты в целое время - PullRequest
0 голосов
/ 22 января 2019

Учитывая кадр данных pandas в python, имеющий столбец с именем time типа integer, я могу преобразовать его в формат datetime с помощью следующей инструкции.

df['time'] = pandas.to_datetime(df['time'], unit='s')

, поэтому теперь в столбце есть записикак: 2019-01-15 13:25:43.

Что такое команда для возврата строки в целочисленное значение временной метки (представляющее количество секунд, прошедших с 1970-01-01 00:00:00)?

Я проверил pandas.Timestamp, ноне удалось найти утилиту преобразования, и я не смог использовать pandas.to_timedelta для этого.

Существует ли какая-либо утилита для этого преобразования?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Использование .dt.total_seconds() на 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()
# or
(df.time - pd.to_datetime('1970-01-01')).dt.total_seconds()

Вывод

0    1.547559e+09
Name: time, dtype: float64
0 голосов
/ 22 января 2019

Вы можете указать тип int, используя astype(int), и разделить его на 10**9, чтобы узнать количество секунд до начала эпохи 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)
...