Преобразовать дату в отметку времени python - PullRequest
0 голосов
/ 24 января 2020

У меня есть особая проблема, у меня есть Dataframe с 2 столбцами, один - date_x, а другой - timestamp, который является hour:min:sec, поэтому я пытаюсь преобразовать столбец timestamp в Unix timestamp.

Я попробовал вот что:

df.timestamp = df.timestamp.apply(lambda x: pd.datetime.strptime(x, "%H:%M:%S").timestamp())

Но дело в том, что мне нужен не только hour,min,second. Правильный формат будет %Y-%m-%d %H:%M:%S, но я не знаю, как включить столбец date, потому что это будет date_x + timestamp.

Ответы [ 2 ]

0 голосов
/ 24 января 2020

Преобразование столбца в timedeltas и добавление к DatetimeIndex, последнее преобразование в unix отметка времени:

print (df)
           timestamp
2018-02-02  17:01:15
2018-02-02  17:01:18
2018-02-02  17:01:24
2018-02-02  08:32:57
2018-02-02  08:33:02
2018-02-02  08:33:08

arr = (df.index + pd.to_timedelta(df.timestamp)).values.astype(np.int64) // 10 ** 6
print (arr)
[1517590875000 1517590878000 1517590884000 1517560377000 1517560382000
 1517560388000]
0 голосов
/ 24 января 2020
pd.to_datetime(df.index.strftime("%Y/%m/%d") +' '+ df.timestamp).values.astype(np.int64) // 10 ** 6

Сначала измените индекс на формат str, используя strftime("%Y/%m/%d"), чтобы объединить date и timestamp столбцы
, затем преобразуйте в datetime на pd.to_datetime
и в конце преобразуйте в int64 для отметки времени

...