Не читать все строки при импорте csv в Pandas dataframe

Я пробую вызов kaggle здесь, и к сожалению, я застрял на очень простой шаг. Мои ограниченные знания python должны быть обвинены в этом. Я пытаюсь прочитать наборы в фрейм данных pandas, выполнив следующую команду:

test = pd.DataFrame.from_csv("C:/Name/DataMining/hillary/data/output/emails.csv")
print (test.shape)
(7945, 21)

теперь я дважды проверил файл и я не могу найти что-нибудь особенное в номере 7945. Любые указатели, почему это может произойти. Кажется, очень обычная ситуация, я надеюсь, что некоторые из вас, кто столкнулся с этой ошибкой, могут мне помочь.

1 ответов


Я думаю, что лучше использовать функцию 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']