2017-10-13 20 views
0

我有一個csv文件,其中4行格式完全相同。當用熊貓閱讀csv時,它不會讀取所有的行。我無法弄清楚爲什麼?因爲格式是相同的.Plz的幫助。列舉如下:read_csv停止讀取一些行,儘管使用相同的格式

tmp_csv_outfile: 
6801 2017/09/28 18:56:51.390624 129.1972 107 XXX1 YYYY ZZZZ 908 log warn verbose 1 908 :: 235 :: [tp]0022 > f4 37 3e 00 00 
6802 2017/09/28 18:56:51.390640 129.1972 108 XXX1 YYYY ZZZZ 908 log warn verbose 1 908 :: 235 :: [tp] TEST: ~Finished Testcase: TEST0471 
6803 2017/09/28 18:56:51.390646 129.1973 109 XXX1 YYYY ZZZZ 908 log warn verbose 1 908 :: 235 :: [dia] trigger received - resetting session timeout 5000 
6804 2017/09/28 18:56:51.390652 129.1975 110 XXX1 YYYY ZZZZ 908 log info verbose 1 908 :: 235 :: [dia][th1] Diagnosis Core responded, sending to the th1 Adapter (allConnected = 0) 



df = pd.read_csv(tmp_csv_outfile,names=["Data"],header=None,sep='\s\s+$',engine='python') 
print df.tail(3) 

輸出

           Data 
0 6801 2017/09/28 18:56:51.390624 129.1972 107 X... 
1 6802 2017/09/28 18:56:51.390640 129.1972 108 X... 

SOLUTIONSOVLED

長挖我找到了解決辦法,在 https://github.com/pandas-dev/pandas/issues/16893

大熊貓的更新後後它開始工作正常。感謝@ jezrael提供寶貴意見。

+0

如果使用'sep ='|''或者'sep ='¥''仍然存在問題? – jezrael

+0

但我沒有其他sep patterns.It幾乎所有的線路都行,發生了什麼情況在這裏第二行。如果我將其更改爲最後一行,那麼它工作正常。還是我理解你錯了? – Biswal

+0

是的,問題在於數據 - 你的數據在'235 ::'之後是網狀的,所以看起來數據與另一行連接在一起或行被移除...我的解決方案不起作用? – jezrael

回答

1

我認爲問題是與分離器,所以它更改爲某個值,它是不是在數據:

df = pd.read_csv(tmp_csv_outfile, names=["Data"], sep='¥‎', engine='python') 
print (df) 

               Data 
0 6801 2017/09/28 18:56:51.390624 129.1972 107 X... 
1 6802 2017/09/28 18:56:51.390640 129.1972 108 X... 
2 6803 2017/09/28 18:56:51.390646 129.1973 109 X... 
3 6804 2017/09/28 18:56:51.390652 129.1975 110 X... 

編輯:

真實的數據爲我工作很好:

df = pd.read_csv('faulty.csv', sep='|', names=['Data']) 
print (df) 
               Data 
0 6801 2017/09/28 18:56:51.390624 129.1972 107 X... 
1 6802 2017/09/28 18:56:51.390640 129.1972 108 X... 
2 6803 2017/09/28 18:56:51.390646 129.1973 109 X... 
3 6804 2017/09/28 18:56:51.390652 129.1975 110 X... 
+0

@ jezrael:原諒我的無知。我無法找到您用作分隔符的符號。我也檢查了Python RE。 PLZ指向我在哪裏可以找到這個信息。謝謝。 – Biswal

+0

您需要不在數據中的符號,因爲「數據」只有一列。所以我使用'日元' - '¥';) – jezrael

+0

@ jezrael:作弊解析的好方法。 :)。我現在按照你所說的去做。但是我很遺憾地說它不適合我。可能是我有不同的字符,當我粘貼代碼時被刪除。這些是在第2行'〜'之前和之後的「SUB」和「DC1」。 – Biswal

相關問題