我从Excel文件导入,需要根据字符串值删除最后一行。
在这种情况下,我需要在第65行的日期结束。
最后一个(可预测的)行将包含字符串“Net Account”减去5行的行。
是否可以只选择具有日期格式的行?不确定哪种方法可以解决这个问题?
60 2011-08-31 00:00:00 285085 0 0 0
61 2011-09-30 00:00:00 273926 0 0 0
62 2011-10-31 00:00:00 287235 0 0 0
63 2011-11-30 00:00:00 284034 0 0 0
64 2011-12-31 00:00:00 284974 0 0 0
65 2012-01-31 00:00:00 294412 0 0 0
66 NaN NaN NaN NaN NaN
67 58 222613 378197 25000 33350
68 NaN NaN NaN NaN NaN
69 NaN NaN NaN NaN NaN
70 Net Account Loss NaN NaN -92135 NaN
71 NaN NaN NaN NaN NaN
答案 0 :(得分:1)
如果需要删除第一列中没有日期时间的所有行,请使用带参数errors='coerce'
的{{3}} - 对于非日期时间返回NaT
,按to_datetime
创建掩码并过滤notnull
:
mask = pd.to_datetime(df['date'], errors='coerce').notnull()
df = df[mask]
print (df)
date a b c d
60 2011-08-31 00:00:00 285085.0 0.0 0.0 0.0
61 2011-09-30 00:00:00 273926.0 0.0 0.0 0.0
62 2011-10-31 00:00:00 287235.0 0.0 0.0 0.0
63 2011-11-30 00:00:00 284034.0 0.0 0.0 0.0
64 2011-12-31 00:00:00 284974.0 0.0 0.0 0.0
65 2012-01-31 00:00:00 294412.0 0.0 0.0 0.0