str.contains 未找到部分匹配项
str.contains doesn't find partial matches
在数据框中
df = pd.DataFrame({'colA': ['id1', 'id2', 'id3', 'id4', 'id5'],
'colB': ['Black cat', 'Black mouse', 'Black_A cat', 'Black cat', 'White_A mouse']})
我想找到 colB
包含 Black cat
的所有行。我的命令
df[df['colB'].str.contains('Black cat', na=False)]
只允许查找
colA colB
0 id1 Black cat
3 id4 Black cat
而我期待的是:
colA colB
0 id1 Black cat
2 id3 Black_A cat
3 id4 Black cat
部分匹配有什么问题?
你的情况 partial match
是什么? contains
是找到精确的子字符串,所以 Black A cat
不会匹配 Black cat
。如果您期望 Black
和 cat
之间的可选字符,您应该在模式中指定:
df[df['colB'].str.contains('Black.*cat', na=False)]
# ^ this
输出:
colA colB
0 id1 Black cat
2 id3 Black_A cat
3 id4 Black cat
在数据框中
df = pd.DataFrame({'colA': ['id1', 'id2', 'id3', 'id4', 'id5'],
'colB': ['Black cat', 'Black mouse', 'Black_A cat', 'Black cat', 'White_A mouse']})
我想找到 colB
包含 Black cat
的所有行。我的命令
df[df['colB'].str.contains('Black cat', na=False)]
只允许查找
colA colB
0 id1 Black cat
3 id4 Black cat
而我期待的是:
colA colB
0 id1 Black cat
2 id3 Black_A cat
3 id4 Black cat
部分匹配有什么问题?
你的情况 partial match
是什么? contains
是找到精确的子字符串,所以 Black A cat
不会匹配 Black cat
。如果您期望 Black
和 cat
之间的可选字符,您应该在模式中指定:
df[df['colB'].str.contains('Black.*cat', na=False)]
# ^ this
输出:
colA colB
0 id1 Black cat
2 id3 Black_A cat
3 id4 Black cat