2016-09-20 79 views
4

我有一个包含用户列表登录信息的大文件。问题是该文件在Date列中包含其他信息。我想删除Date列中不是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

适合我的需要。

的问题是,每当我试图改变我要么得到一个错误或整个数据帧被删除

+1

不应该'DF = DF [DF [ '日期']适用。(拉姆达X:式(X)== 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