Разница панд между datetime64 [нс] в миллисекундах - PullRequest
0 голосов
/ 16 января 2019

Как получить разницу в миллисекундах этих двух столбцов:

import numpy as np
from datetime import datetime
import pandas as pd


def datetime_generator():
    day = np.random.randint(1, 7 + 1)
    hour = np.random.randint(0, 23 + 1)
    minute = np.random.randint(0, 59 + 1)
    second = np.random.randint(0, 59 + 1)
    millisecond = np.random.randint(0, 999999 + 1)

    return datetime(2018, 1, day, hour, minute, second, millisecond)

df = pd.DataFrame({'ts1': [datetime_generator() for i in range(10)],
                         'ts2': [datetime_generator() for i in range(10)]})

1 Ответ

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

Редактировать: Получить timedeltas, затем прочитать и преобразовать их микросекунды.

df["new"] = df.ts1 - df.ts2
df["new"] = df.new.apply(lambda x: x.microseconds/1000)

Этот старый ответ получает только микросекунды

.dt.microsecond это путь

df["new"] = df.ts1.dt.microsecond - df.ts2.dt.microsecond

Обратите внимание, что коэффициент преобразования между микро и мили секундами равен 1000:1, поэтому ...

df["new"] = (df.ts1.dt.microsecond - df.ts2.dt.microsecond)/1000

Насколько я могу судить, .dt.milisecond эквивалента нет.

...