2016-09-20 5 views
4

У меня есть большой файл с регистрационной информацией для списка пользователей. Проблема состоит в том, что файл содержит другую информацию в столбце Date. Я хотел бы удалить все строки, которые не относятся к типу datetime в столбце Date. Мои данные напоминаетPandas удалять все строки, которые не являются типом 'datetime'

df= 
Name  Date 
name_1 | 2012-07-12 22:20:00 
name_1 | 2012-07-16 22:19:00 
name_1 | 2013-12-16 17:50:00 
name_1 |    4345 # type = 'int' 
           # type = 'float' 
name_2 | 2010-01-11 19:54:00 
name_2 | 2010-02-06 12:10:00 
... 
name_2 | 2012-07-18 22:12:00 
name_2 |    4521 
... 
name_5423 | 2013-11-23 10:21:00 
... 
name_5423 |    7532 

Я попытался модифицировать решение

finding non-numeric rows in dataframe in pandas?

Remove rows where column value type is string Pandas

и How-should-I-delete-rows-from-a-DataFrame-in-Python-Pandas

, чтобы соответствовать моим потребностям.

Проблема заключается в том, что всякий раз, когда я пытаюсь изменения я либо получаю сообщение об ошибке или весь dataframe будет удален

+1

не должны 'ДФ = ДФ [ДФ [ 'Date'] применяются. (Лямбда-х: тип (х) == datetime.datetime)]' работа – EdChum

ответ

9

Использование pd.to_datetime с параметром errors='coerce', чтобы не-дат в NaT нулевых значений. После этого вы можете отбросить эти строки

df['Date'] = pd.to_datetime(df['Date'], errors='coerce') 
df = df.dropna(subset=['Date']) 

df 

enter image description here

Смежные вопросы