Покрытие строкового значения в datetime - PullRequest
0 голосов
/ 09 октября 2018

В настоящее время у меня есть фрейм данных, в котором есть столбец, содержащий значения даты и времени в качестве типа данных объекта.

    col1    col2            col3
0    A       10     2016-06-05 11:00:00
0    B       11     2016-06-04 00:00:00
0    C       12     2016-06-02 05:00:00
0    D       13     2016-06-03 02:00:00

Что я пытаюсь сделать, так это преобразовать столбец col3 в значения даты и времени, чтобы он просто выдаваля:

 Year-Month-Day-Hour

Для некоторой даты и времени.Когда я пытаюсь:

df['col3'] = pd.to_datetime(df['col3'])

я получаю эту ошибку:

OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 3008-07-25 00:00:00

Есть идеи?

Спасибо

1 Ответ

0 голосов
/ 09 октября 2018

Вы можете использовать параметр errors='coerce' для преобразования значений вне пределов в NaT:

print (df)
  col1  col2                 col3
0    A    10  2016-06-05 11:00:00
0    B    11  2016-06-04 00:00:00
0    C    12  2016-06-02 05:00:00
0    D    13  3008-07-25 00:00:00

df['col3'] = pd.to_datetime(df['col3'], errors='coerce')
print (df)
  col1  col2                col3
0    A    10 2016-06-05 11:00:00
0    B    11 2016-06-04 00:00:00
0    C    12 2016-06-02 05:00:00
0    D    13                 NaT

Ограничение метки времени :

In [68]: pd.Timestamp.min
Out[68]: Timestamp('1677-09-21 00:12:43.145225')

In [69]: pd.Timestamp.max
Out[69]: Timestamp('2262-04-11 23:47:16.854775807')

Также возможно создание Периодов , но непросто из строк:

def conv(x):
    return pd.Period(year = int(x[:4]), 
                     month = int(x[5:7]), 
                     day = int(x[8:10]),
                     hour = int(x[11:13]), freq='H')

df['col3'] = df['col3'].apply(conv)

print (df)
  col1  col2             col3
0    A    10 2016-06-05 11:00
0    B    11 2016-06-04 00:00
0    C    12 2016-06-02 05:00
0    D    13 3008-07-25 00:00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...