7

ここでkaggle チャレンジを試みていますが、残念ながら非常に基本的なステップで立ち往生しています。私の限られた python の知識は、これのせいにする必要があります。次のコマンドを実行して、データセットを pandasデータフレームに読み込もうとしています。

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

問題は、ご覧のとおり、このファイルには 300,000 を超えるレコードがあるのに、7945, 21 しか読み取っていないことです。

print (test.shape)
(7945, 21)

ファイルを再確認しましたが、行番号 7945 について特別なことは何も見つかりませんでした。非常に普通の状況のようですが、このエラーに遭遇した方が助けてくれることを願っています.

4

1 に答える 1

13

関数read_csvをパラメーターquoting=csv.QUOTE_NONEとで使用する方が良いと思いerror_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']
于 2015-10-16T05:57:14.370 に答える