【问题标题】:Use pandas to count empty cells or cells with specific text in a csv file使用 pandas 对 csv 文件中的空单元格或具有特定文本的单元格进行计数
【发布时间】:2022-01-21 16:02:34
【问题描述】:

我正在尝试使用 pandas 来:

  1. 读取 csv 文件
  2. 在 csv 文件的“Status_Issue”列中包含文本“pending”的计数(在 count1 个中)
  3. 在 csv 文件的“Status_Issue”列中计数(in count2)个空单元格
  4. 将第一次计数 (count1) 和第二次计数 (count2) 的结果相加

我下面的代码不会产生任何结果。您能否提供一些指导来纠正我的脚本:

    df = pd.read_csv("sortdata.csv")
    # function to count in the column Status_Issue number of Pending
    count1 = df["Status_Issue"].str.count("Pending")
    #function to count empty cell in the column "Status_Issue"
    count2 = df["Status_Issue"].isna().sum()
    # sum the number of pending in count1 and count2
    result1 = count1 + count2

【问题讨论】:

  • 您的df = pd.read_csv(...) 行有什么收获吗?您的usecols = ... 看起来过于复杂。你想在那里做什么?那行得通吗?我想我的问题的核心是:您的代码在哪里破坏了?由于我们没有您的 csv,因此我们无法自行运行和测试。
  • lambda x:x.lower() in ["Status_Issue"] 永远不会返回任何东西

标签: pandas string csv count is-empty


【解决方案1】:

要计算特定列中的空单元格,您可以

df.column_name.isna().sum()

要计算具有特定内容的单元格,您可以先过滤 df,然后检查其形状

df.query("column_name == 'specific_text'").shape[0]

为了成功读取您的 .csv 文件,您需要更改 usecols 参数,因为目前从未满足条件,因为仅包含小写字母的字符串永远不会等于“状态问题”

【讨论】:

    猜你喜欢
    • 2017-04-25
    • 2019-03-06
    • 2015-03-05
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多