У меня есть следующий DataFrame, который суммирует различные случаи, с которыми я сталкиваюсь в моем наборе данных:
import pandas as pd
import numpy as np
df = pd.DataFrame({'date': [20120302, 20141017, 20150215],
'time': [764, 17002, 110000517]}, dtype=np.uint64)
Числа, которые я вижу в столбце df.time
, похожи на единицы, которые складываются по мере дняпочти до 240000000
(например, одна из последних записей может быть 235959281
).Как вы можете предположить, они составляют до 24 часов (один день).
Я хочу объединить оба столбца, образуя столбец date_time
, имеющий формат datetime64[ns]
, чтобы я мог провести дальнейший анализ с помощью панд.
Проблемы:
Я могу присоединиться к ним (т.е. преобразовать их в str), но я не получаю точный формат даты и времени, который мне нужен.Когда я присоединяюсь к ним, я получаю следующие значения, например:
20120302764
2014101717002
20150215110000517
И я хотел бы получить:
2012-03-02 00:00:00.764
2014-10-17 00:00:17.002
2015-02-15 11:00:00.517
С моей стороны:
Попытка конвертации напрямую с pd.to_datetime()
не удалась, даже с предоставлением формата '%Y-%m-%d %H:%M:%S.%f'
.
Я могу присоединиться к объекту timedelta64[ns]
с datetime64[ns]
, чтобы сформировать последний столбец.Однако единицы, конвертированные с помощью timedelta, не дают реального часа, минуты, секунды и миллисекунды.
Вопрос: ¿Как я могу получить часы,минуты, секунды и миллисекунды из этих «единичных» величин таким образом, что я могу затем присоединить их к столбцу даты, чтобы сформировать полное значение date_time?