Полоса микросекунды с даты и времени - PullRequest
0 голосов
/ 27 августа 2018

Для заданных временных данных - 2018-06-01 06:36:40.047883+00:00, я хочу удалить микросекунду и убрать значение после '+'.Большая часть моего набора данных содержит значения типа 2018-06-04 11:30:00+00:00 без микросекундной части.

Как создать общий формат даты и времени для всех значений?

Ответы [ 3 ]

0 голосов
/ 27 августа 2018

Допустим, у вас есть смесь различных форматов, которая выглядит следующим образом:

import pandas as pd

df = pd.DataFrame()
df['time'] = ['2018-06-01 06:36:40.047883+00:00', '2018-06-01 06:36:40.047883+00:00', '2018-06-04 11:30:00+00:00', '2018-06-01 06:36:40.047883']

Соответствующий вывод:

                               time
0  2018-06-01 06:36:40.047883+00:00
1  2018-06-01 06:36:40.047883+00:00
2         2018-06-04 11:30:00+00:00
3        2018-06-01 06:36:40.047883

Вы хотите перейти к общему формату, удалив микросекунды ичто-нибудь после +.Короче говоря, вы хотите что-то в формате YMD HMS.

В настоящее время позвольте мне предположить, что ваш столбец в строковом формате.Итак, теперь мы конвертируем это в формат datetime, а затем заменяем часть микросекунды на 0 и избавляемся от нее.

df['time'] = pd.to_datetime(df['time'])
df['time'] = df['time'].apply(lambda x: x.replace(microsecond = 0))

Выход:

                 time
0 2018-06-01 06:36:40
1 2018-06-01 06:36:40
2 2018-06-04 11:30:00
3 2018-06-01 06:36:40
0 голосов
/ 27 августа 2018

Я отвечаю на ваш вопрос, предполагая, что тип данных представляет собой строку .

Если вы столкнулись с проблемой при обработке в различных форматах, таких как "2018-06-01 06:36:40.047883+00:00" и "2018-06-04 11:30:00+00:00" вы можете использовать split().Узнайте больше о split() в здесь

str_data_time.split("+")[0].split(".")[0]

Как,

for str_data_time in ["2018-06-01 06:36:40.047883+00:00", "2018-06-04 11:30:00+00:00"]:
    output = str_data_time.split("+")[0].split(".")[0]
    print(output)

Вывод приведенного выше сценария:

2018-06-01 06:36:40
2018-06-04 11:30:00
0 голосов
/ 27 августа 2018

Другой способ добиться этого - использовать str.split:

t = "2018-06-04 11:30:00+00:00"
t.split('+')[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...