#python #pandas #datetime
#python #панды #datetime
Вопрос:
Предположим, у меня есть следующий фрейм данных:
d = {'col1':['a','b','c'],
'col2':['d','e', date(2019, 4, 13)],
'col3':[1,date(2015, 5, 10),3]}
df = pd.DataFrame(d)
Я хочу найти строки, в которых есть datetime
объекты. Результатом будет
index col1 col2 col3
0 1 b e 2015-05-10
1 2 c 2019-04-13 3
Причина, по которой я спрашиваю об этом, заключается в том, что в моем фактическом фрейме данных я получаю следующую ошибку:
TypeError: must be real number, not datetime.datetime
Это означает, что где-то в фрейме данных есть datetime.datetime
значение, которого не должно быть. Итак, я хочу просмотреть фрейм данных who и найти именно эти строки по типу объекта и в конечном итоге удалить их.
Ответ №1:
Попробуйте applymap
:
mask = df.applymap(lambda x: type(x) == datetime.date).any(1)
df[mask]
Вывод:
col1 col2 col3
1 b e 2015-05-10
2 c 2019-04-13 3