根据字符串搜索删除最后一行df

时间:2017-06-22 04:06:50

标签: excel pandas

我从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 

1 个答案:

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