在将csv导入pandas数据框架时没有读取所有的行[英] Not reading all rows while importing csv into pandas dataframe

本文是小编为大家收集整理的关于在将csv导入pandas数据框架时没有读取所有的行的处理方法,想解了在将csv导入pandas数据框架时没有读取所有的行的问题怎么解决?在将csv导入pandas数据框架时没有读取所有的行问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在尝试kaggle挑战在这里,不幸的是,我被困在一个非常基本的步骤.我有限的Python知识必须为此归咎于我. 我正在尝试阅读 dataSets 通过执行以下命令来进入pandas dataframe :

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

问题在于,您会发现该文件有300,000多个记录,但我仅阅读7945,21.

print (test.shape)
(7945, 21)

现在,我已经仔细检查了该文件,但我找不到有关行号7945的特殊内容.任何指示都会发生这种情况.似乎很普通的情况,我希望你们中的一些人遇到了这个错误可以帮助我.

推荐答案

我认为更好的是使用函数 read_csv 带有参数quoting=csv.QUOTE_NONE和error_bad_lines=False. link

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']

本文地址:https://www.itbaoku.cn/post/1727943.html