计算行包含特定文本时的行数

时间:2015-07-23 09:19:55

标签: python pandas

可能是一个简单的问题,但我找不到简单的答案。例如,我们在数据帧df1中采用以下列状态:

**Status**
Planned
Unplanned
Missing
Corrected

我想在单元格包含,计划和丢失时计算行数。我尝试了以下方法:

test1 = df1['Status'].str.contains('Planned|Missing').value_counts()

列状态来自类型:object。我的代码行有什么问题?

3 个答案:

答案 0 :(得分:6)

您可以使用布尔条件过滤df,然后调用len

In [155]:
len(df[df['Status'].str.contains('Planned|Missing')])

Out[155]:
2

或者使用True中的索引value_counts

In [158]:   
df['Status'].str.contains('Planned|Missing').value_counts()[True]

Out[158]:
2

答案 1 :(得分:0)

尝试以下操作:

df["Status"].value_counts()[['Planned','Missing']].sum()

答案 2 :(得分:0)

the offical docsna=False结合使用可确保您拥有布尔序列。还要注意,True / False的作用类似于1 / 0的数值计算。您现在可以直接使用pd.Series.str.contains

count = df['Status'].str.contains('Planned|Missing', na=False).sum()

这避免了不必要和昂贵的数据帧索引操作。