2015-10-16 4 views
5

私はkaggleチャレンジを試していますhere、残念ながら私は非常に基本的なステップで立ち往生しています。私の限定されたpythonの知識はこれのために非難されなければなりません。 私は、次のコマンドを実行して、パンダのデータフレームにdatasetsを読みしようとしています:csvをpandasデータフレームにインポート中にすべての行を読み取っていません

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

問題は、あなたが見つけると同じように、このファイルには、30万人以上のレコードを持っていることですが、私は唯一、21

7945を読んでいます
print (test.shape) 
(7945, 21) 

ここでファイルをダブルチェックしたところ、行番号7945について特別なものは見つかりませんでした。なぜこのようなことが起こるのかを示すポインタです。非常に普通の状況だと思われますが、このエラーを迂回した人が私を助けてくれることを願っています。

+1

感謝を。私は同様の問題に遭遇した。 – Saurabh

答えて

2

パラメータquoting=csv.QUOTE_NONEerror_bad_lines=Falseを使用すると便利な機能はread_csvだと思います。​​

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'] 
関連する問題