Как отфильтровать или выбрать строки, содержащие только даты в столбце панд - PullRequest
2 голосов
/ 08 марта 2019

У меня есть фрейм данных pandas со следующим столбцом:

df["Date"]
2015-04-11 00:00:00
2015-03-11 00:00:00
NaN
2014-11-15 00:00:00
its not available
2017-01-27 00:00:00
2016-05-21 00:00:00
was not detected
2015-09-16 00:00:00
incomplete
...

Я бы хотел отфильтровать только те строки, которые содержат даты.

df["Date"]
2015-04-11 00:00:00
2015-03-11 00:00:00
2014-11-15 00:00:00
2017-01-27 00:00:00
2016-05-21 00:00:00
2015-09-16 00:00:00
....

Пожалуйста, дайте мне знать, если есть способ отфильтровать даты. Спасибо

Ответы [ 2 ]

4 голосов
/ 08 марта 2019

Использование to_datetime + errors='coerce' с notna

df=df.loc[pd.to_datetime(df.Date,errors='coerce').notna()].copy()
df

Out[925]: 
                  Date
0  2015-04-11 00:00:00
1  2015-03-11 00:00:00
3  2014-11-15 00:00:00
5  2017-01-27 00:00:00
6  2016-05-21 00:00:00
8  2015-09-16 00:00:00
1 голос
/ 08 марта 2019

Я предполагаю, потому что они представляют собой смешанные даты и строки, что столбец заполнен объектом, а не типом данных datetime.Нет ли фактического времени в вашем фрейме данных?Если нет (то есть все они 00:00:00), вы можете выполнить частичный поиск строки для 0.

df[df['Date'].str.contains('00:00:00')]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...