2017-06-22 84 views
0

我從Excel文件導入並需要根據字符串值刪除最後一行。基於字符串搜索刪除df的最後一行

在這種情況下,我需要在日期在65排

最後一個(可預測的)行結束將是包含字符串「網賬號」少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

遺憾沒沒有得到你想要的東西。 – ammy

+0

爲我顯示正確的數據和預期的數據。 – ammy

回答

1

如果需要刪除所有行是第一列沒有日期時間使用to_datetime與參數errors='coerce' - 它返回NaT不日期時間,通過notnull和過濾通過boolean indexing創建面膜:

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 
+0

真棒解決方案!謝謝。 – diogenes

+0

如果我的回答很有幫助,請不要忘記[接受](http://meta.stackexchange.com/a/5235/295067) - 點擊答案旁邊的複選標記('✓')將其從灰色填充。謝謝。 – jezrael

相關問題