Конвертация из string в timestamp
Есть массив:
a = [('2020-12-13 00:00', 'ADAM'), ('2020-12-13 01:00', 'MADAM'), ('2020-12-13 02:00', 'TADAM')]
Нужно добавить Timestamp в дату:
a = [(Timestamp('2020-12-13 00:00:00'), 'ADAM'), (Timestamp('2020-12-13 01:00:00'), 'MADAM'), (Timestamp('2020-12-13 02:00:00'), 'TADAM')]
Как это делать?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Если Timestamp - это объект из Pandas, то это можно сделать так:
import pandas as pd
res = [(pd.Timestamp(x), y) for x,y in a]
результат:
In [145]: res
Out[145]:
[(Timestamp('2020-12-13 00:00:00'), 'ADAM'),
(Timestamp('2020-12-13 01:00:00'), 'MADAM'),
(Timestamp('2020-12-13 02:00:00'), 'TADAM')]
или сначала сделать из списка фрейм, чтобы дальше с ним можно было работать в векторной форме:
In [149]: res = pd.DataFrame(a, columns=["Date", "Name"]).assign(Date=lambda df: pd.to_datetime(df["Date"]))
In [150]: res
Out[150]:
Date Name
0 2020-12-13 00:00:00 ADAM
1 2020-12-13 01:00:00 MADAM
2 2020-12-13 02:00:00 TADAM
In [151]: res.dtypes
Out[151]:
Date datetime64[ns]
Name object
dtype: object