【问题标题】:Remove rows which has more than 4 columns using pandas使用 pandas 删除超过 4 列的行
【发布时间】:2017-12-21 17:34:54
【问题描述】:

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

我该如何继续?

谢谢

编辑1

  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,

在此示例中:要删除的第一行和第 6 行有额外的列 emclient

【问题讨论】:

  • 特定数据框中的每一行都应具有相同的列数。请发布一个示例。
  • 你能分享一个例子吗?
  • @user55449 请看我的更新
  • @MedAli,请看我的更新
  • @vincent CSV 文件的分隔符是什么?

标签: python csv pandas dataframe


【解决方案1】:

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

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

或者自己编写代码相当琐碎。

【讨论】:

    【解决方案2】:

    如果可能的错误只是额外的列。然后在 pd.read_csv 中传递这个。

    error_bad_lines=False
    

    error_bad_lines : 布尔值,默认 True Lines 字段太多 (例如,逗号太多的 csv 行)默认情况下会导致 引发异常,并且不会返回任何 DataFrame。如果为假, 那么这些“坏行”将从 DataFrame 中删除,即 回来。 (仅对 C 解析器有效)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-29
    • 2015-06-07
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多