Конвертация из 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
→ Ссылка