如何在熊猫列中过滤或选择仅包含日期的行

时间:2019-03-08 20:20:03

标签: python pandas datetime

我有一个熊猫数据框,其列如下:

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 个答案:

答案 0 :(得分:4)

to_datetimeerrors='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 :(得分:1)

我假设是因为它们混合了日期和字符串,所以该列充满了对象,而不是datetime数据类型。您的数据框中没有实际时间吗?如果不是(表示它们都是00:00:00),则可以对0进行部分字符串搜索。

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