Python 对不包含某些字符串帧的行进行计数

Python 对不包含某些字符串帧的行进行计数,python,pandas,dataframe,Python,Pandas,Dataframe,我想计算数据帧不包含某些字符串的行数。例如: df = pd.DataFrame([[1.1, 1.1, 1.1, 2.6, 2.5, 3.4,2.6,2.6,3.4,3.4,2.6,1.1,1.1,3.3], list('AAABBBBABCBDDD'), ['x/y/z','x/y','x/y/z/n','x/u','x','x/u/v','x/y/z','x','x/u/v/b','-','x/y','x/y/z','x','x/u/v/w']]).T df.columns = ['col

我想计算数据帧不包含某些字符串的行数。例如:

df = pd.DataFrame([[1.1, 1.1, 1.1, 2.6, 2.5, 3.4,2.6,2.6,3.4,3.4,2.6,1.1,1.1,3.3], list('AAABBBBABCBDDD'), ['x/y/z','x/y','x/y/z/n','x/u','x','x/u/v','x/y/z','x','x/u/v/b','-','x/y','x/y/z','x','x/u/v/w']]).T
df.columns = ['col1','col2','col3']

   col1 col2     col3
0   1.1    A    x/y/z
1   1.1    A      x/y
2   1.1    A  x/y/z/n
3   2.6    B      x/u
4   2.5    B        x
5   3.4    B    x/u/v
6   2.6    B    x/y/z
7   2.6    A        x
8   3.4    B  x/u/v/b
9   3.4    C        -
10  2.6    B      x/y
11  1.1    D    x/y/z
12  1.1    D        x
13  3.3    D  x/u/v/w
在上面的数据框中,我想计算不包含“u”或“z”的行数。我知道如何使用str.contains来获取具有特定字符串的行

df.col3.str.contains('u|z')

如何获得“非”部分的计数?

我可能有误解,但这不可能吗

如果不是df.col3.str.contains('u | z'):

尝试:

更新 计数,使用

(~df.col3.str.contains('u|z')).sum()

获取行数可以吗~df.col3.str.contains('u | z')。value_counts()waitingkuo:好的,谢谢你得到了我想要的。:@waitingkuo我想你想要的是
sum()
,而不是
count()
。计数包括
True
False
并给出14,而不是6。谢谢你,丹,很抱歉误导你,已经更新了答案
df.col3.str.contains('u | z')
返回一个布尔数组,因此不能使用pythonic
和,或者不是
仅按位
&,|,~
~df.col3.str.contains('u|z')
(~df.col3.str.contains('u|z')).sum()