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

Как я могу получить разницу в миллисекундах между этими двумя временными метками в пандах как целое число?

Моя попытка до сих пор:

import pandas as pd
from datetime import datetime


ts1 = datetime(2018, 1, 1, 22, 36, 9, 38000)
ts2 = datetime(2018, 1, 1, 22, 36, 7, 908000)


df = pd.DataFrame("ts1": [ts1],"ts2": [ts2]})


df['interval_ts'] = df['ts1'] - df['ts2']

df['interval_ts'] = df['interval_ts'].apply(lambda x: x.microseconds / 1000)

Мой ожидаемый результат: 1130

1 Ответ

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

Используйте total_seconds, умноженное на 1000 и приведенное к целому числу:

df['interval_ts'] = ((df['ts1'] - df['ts2']).dt.total_seconds() * 10**3).astype(int)

Или преобразовать в собственный формат NumPy и разделить 10**6:

df['interval_ts1'] = ((df['ts1'] - df['ts2']).astype(np.int64) / 10**6).astype(int)
print (df)
                      ts1                     ts2  interval_ts  interval_ts1
0 2018-01-01 22:36:09.038 2018-01-01 22:36:07.908         1130          1130
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...