Как сбросить datetime.time и преобразовать его? - PullRequest
0 голосов
/ 13 января 2020

У меня есть набор данных, содержащий 20000 строк и 132 столбца, но при обработке данных у меня возникла проблема. Когда я делаю .dtype в одном из столбцов (ожидаемая дата выгрузки), он дает мне «dtype ('O')», однако, когда я ищу некоторые строки, в частности, это выглядит так:

df['expected discharge date'][58]
datetime.datetime(2017, 10, 24, 0, 0)

Однако в некоторых других строках это выглядит так:

df['expected discharge date'][18]    
datetime.time(0, 0)

Итак, я хочу отбросить все строки, имеющие «datetime.time», иметь возможность конвертировать эти столбцы в дату dtype и просто иметь вот так : datetime.date (2017, 10, 24)

Можете ли вы мне помочь, пожалуйста?

1 Ответ

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

Используйте .apply(), чтобы проверить строки для определенного типа c:

import datetime

time_only = df['expected discharge date'].apply(lambda v: isinstance(v, datetime.time))

Затем можно удалить строки, замаскированные time_only:

del df[time_only]

Вы можете объединить это в одно утверждение:

del df[df['expected discharge date'].apply(lambda v: isinstance(v, datetime.time))]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...