使用pandas删除包含4列以上的行

时间:2017-07-17 08:58:00

标签: python csv pandas dataframe

我有几个用pandas处理的csv文件。我想删除超过3列的行。

我该怎样进行?

谢谢

EDIT1

  id                                       ocr  raw_value   
4a82a357-99e7-49e6-85b6-b2f6a27b8d5f    OMNIPAGE    Terms        em
8b549fef-0cda-4af5-8239-35153c33ffbc    OMNIPAGE    price   
52ffe66a-b1ab-4b22-9b26-c298d53c951c    OMNIPAGE    Renseignements  
507a0d96-9481-4b3f-8c35-f16588bedc0b    OMNIPAGE    pour    
52e171dc-8d22-4162-b748-692b2fc11659    OMNIPAGE    Client  
c40a7e9f-1ec4-4cac-87e8-02ed0f335fe9    OMNIPAGE    5           client
4a936ed7-c082-4f46-9fa1-761a1525e2df    OMNIPAGE    SAS 
4b78130e-b099-400c-b7bf-6470e0519783    OMNIPAGE    des 
4d5c6297-1c79-42f9-b4ea-929a9abfb3f7    OMNIPAGE    431 
829d8bf5-b251-4bb1-82d8-0e912ab64e8e    OMNIPAGE    59  102
5ed5b74d-efc5-49fa-9b12-dbe3ca88995f    OMNIPAGE    votre   votre
58d26125-1120-4328-83c4-7f5b0135184d    OMNIPAGE    Crécy,  Crécy,

在此示例中:要删除的第一行和第六行,他们有额外的列 em 客户端

2 个答案:

答案 0 :(得分:2)

如果可能,则错误仅为额外列。然后在pd.read_csv中传递此内容。

error_bad_lines=False
  

error_bad_lines:boolean,default True包含太多字段的行   (例如,逗号太多的csv行)默认会导致   要引发的异常,并且不会返回任何DataFrame。如果为假,   然后这些“坏线”将从DataFrame中删除   回。 (仅对C解析器有效)

答案 1 :(得分:0)

CSV文件应该具有固定数量的列。 Pandas不是CSV格式验证器(即使它能够处理一些错误)。 如果您的CSV格式不正确(在您的情况下,每列中的行数可变),您应该在将其提供给Pandas之前对其进行预验证。

例如:https://pypi.python.org/pypi/csvvalidator

或者自己做的代码相当简单。