Как разбить все строки в столбце панд данных? - PullRequest
0 голосов
/ 21 мая 2019

У меня есть набор данных со столбцами createOnTimeZone и startDate. Часовые пояса похожи на -600, но начальные даты - на 2019-01-28T19: 50: 27.345-06: 00. Я хочу применить часовой пояс для startDate во всех строках. Я знаю, что должен разделить startDate на '.' (Мне не нужны миллисекунды, только пока хватит секунды), используйте strptime, чтобы преобразовать его в дату-время, а затем используйте mktime, чтобы преобразовать дату-время в метку времени. Но я не знаю, как применить это ко всем строкам в столбце startDate.

createdOnTimeZone startDate
-600              2019-01-28T19:50:27.345-06:00
-600              2019-01-28T19:50:35.493-06:00
-600              2019-01-28T19:50:38.947-06:00
-600              2019-01-28T19:50:49.048-06:00
-600              2019-01-28T19:50:59.600-06:00
-600              2019-01-28T19:51:08.267-06:00
-600              2019-01-28T19:51:15.899-06:00
-600              2019-01-28T19:51:27.326-06:00
-600              2019-01-28T19:51:38.762-06:00

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

Попробуйте это:

from datetime import datetime

a = "2019-01-28T19:50:27.345-06:00"

# Splitting the string and grabbing the zeroth index, which is the date.
date = a.split("T")[0]

# Similarly splitting and grabbing the time, removing the milliseconds.
time = a.split("T")[1].split(".")[0]

# Converted it to my desired datetime format and extracted timestamp out of it.
date_time = date + " " + time
time_stamp = datetime.strptime(date_time, "%Y-%m-%d %H:%M:%S").timestamp()

print(type(date_time), date_time)
print(type(time_stamp), time_stamp)
  • Выход:
<class 'str'> 2019-01-28 19:50:27
<class 'float'> 1548726627.0
0 голосов
/ 21 мая 2019

попробуйте с этим:

df['startDate'] = df['startDate'].apply(lambda x : x.split('.')[0])

это разделит строки на '.'

отл.

2019-01-28T19:50:27.345-06:00 становится 2019-01-28T19:50:27

и это для отметки времени

df['startDate'] = df['startDate'].apply(lambda x : time.mktime(datetime.datetime.strptime(x.split('.')[0], "%Y-%m-%dT%H:%M:%S").timetuple()))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...