如何使用熊猫计算列中具有特定字符串值的行数?

我有一个带有 dtype 'object' 的 pandas 列,其中包含数值和值 '?'

我应该如何继续计算具有值 '?' 的行数?

我正在尝试运行:

question_mark_count = df['column'].str.contains('?').sum()

在具有数值和一些问号“?”的列中,但出现错误:

AttributeError: Can only use .str accessor with string values!

当我运行 df.dtypes 时,我可以看到该列是 'object' type

我还尝试将列转换为字符串:

df["column"] = df["column"].astype("string")

但我仍然遇到同样的错误。

stack overflow How to count number of rows with a specific string value in a column using pandas?
原文答案
author avatar

接受的答案

进一步探索可能性:

df["column"].str.contains('?').value_counts()

免疫 np.nan pd.NA ints floatsdf['column'] 中的任何内容


答案:

作者头像

这个怎么样?

>>> (df["column"].str.contains('?')).astype('int').sum()
作者头像

在我的情况下,前面的答案几乎是正确的。尝试在对 contains 函数的调用中添加 na=False

df["column"].str.contains('?', na=False).astype('int').sum()