2015-10-16 31 views
5

我在嘗試kaggle挑戰here,不幸的是我被困在一個非常基本的步驟。我有限的Python知識必須被指責。 我試圖通過執行以下命令來讀取datasets成大熊貓數據幀:在將csv導入熊貓數據框時沒有讀取所有行

test = pd.DataFrame.from_csv("C:/Name/DataMining/hillary/data/output/emails.csv") 

的問題是,這個文件,你會發現有超過30萬的記錄,但我只是讀7945,21

print (test.shape) 
(7945, 21) 

現在我已經加倍檢查了這個文件,並且我找不到任何有關行號7945的特殊信息。任何指針都可能會出現這種情況。看起來很平常的情況,我希望你們有人跑過這個錯誤可以幫我解決。

+1

感謝問這個問題。我遇到了類似的問題。 – Saurabh

回答

2

我認爲更好的是使用功能read_csv與參數quoting=csv.QUOTE_NONEerror_bad_lines=False。​​

import pandas as pd 
import csv 

test = pd.read_csv("output/Emails.csv", quoting=csv.QUOTE_NONE, error_bad_lines=False) 

print (test.shape) 
#(381422, 22) 

但是一些數據(有問題的)將被跳過。

如果你想跳過電子郵件正文數據,你可以使用:

import pandas as pd 
import csv 

test = pd.read_csv("output/Emails.csv", quoting=csv.QUOTE_NONE, sep=',', error_bad_lines=False, header=None, 
    names=["Id","DocNumber","MetadataSubject","MetadataTo","MetadataFrom","SenderPersonId","MetadataDateSent","MetadataDateReleased","MetadataPdfLink","MetadataCaseNumber","MetadataDocumentClass","ExtractedSubject","ExtractedTo","ExtractedFrom","ExtractedCc","ExtractedDateSent","ExtractedCaseNumber","ExtractedDocNumber","ExtractedDateReleased","ExtractedReleaseInPartOrFull","ExtractedBodyText","RawText"]) 

print (test.shape) 

#delete row with NaN in column MetadataFrom 
test = test.dropna(subset=['MetadataFrom']) 
#delete headers in data 
test = test[test.MetadataFrom != 'MetadataFrom'] 
相關問題