У меня есть следующий фрейм данных
import numpy as np
import pandas as pd
import os
csvFile = "csv.csv"
csvDelim = '@@@'
df = pd.read_csv(csvFile, engine="python", index_col=False, delimiter= csvDelim)
df.head()
ID col_1
0 ACLKB
1 CLKAA
2 AACLK
3 BBBCLK
Передаваемое регулярное выражение: CLK и имя столбца 'col_1'
text = '*CLK*'
findtext = 'r'+text+".*"
colName = 'Signal'
df[colName].str.match(text)
Iя получаю следующие результаты, которые являются неправильными.
0 False
1 False
2 False
3 False
4 False
The expected output is
0 True
1 True
2 True
3 True
4 True
Can someone help me to filter rows based on regular expression passed as above
error Traceback (most recent call last)
<ipython-input-110-8d1c1b6b2d15> in <module>()
----> 1 df['Signal'].str.match(findtext)
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\strings.py in match(self, pat, case, flags, na, as_indexer)
1571 def match(self, pat, case=True, flags=0, na=np.nan, as_indexer=None):
1572 result = str_match(self._data, pat, case=case, flags=flags, na=na,
-> 1573 as_indexer=as_indexer)
1574 return self._wrap_result(result)
1575
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\strings.py in str_match(arr, pat, case, flags, na, as_indexer)
495 flags |= re.IGNORECASE
496
--> 497 regex = re.compile(pat, flags=flags)
498
499 if (as_indexer is False) and (regex.groups > 0):
~\AppData\Local\Continuum\anaconda3\lib\re.py in compile(pattern, flags)
231 def compile(pattern, flags=0):
232 "Compile a regular expression pattern, returning a pattern object."
--> 233 return _compile(pattern, flags)
234
235 def purge():
~\AppData\Local\Continuum\anaconda3\lib\re.py in _compile(pattern, flags)
299 if not sre_compile.isstring(pattern):
300 raise TypeError("first argument must be string or compiled pattern")
-> 301 p = sre_compile.compile (pattern, flags) 302, если нет (flags & DEBUG): 303, если len (_cache)> = _MAXCACHE:
~\AppData\Local\Continuum\anaconda3\lib\sre_compile.py in compile(p, flags)
560 if isstring(p):
561 pattern = p
-> 562 p = sre_parse.parse (p, flags) 563 else: 564 pattern = None
~\AppData\Local\Continuum\anaconda3\lib\sre_parse.py in parse(str, flags, pattern)
853
854 try:
-> 855 p = _parse_sub (source,pattern, flags & SRE_FLAG_VERBOSE, 0) 856 кроме Verbose: 857 # флаг VERBOSE был включен внутри шаблона.быть
~\AppData\Local\Continuum\anaconda3\lib\sre_parse.py in _parse_sub(source, state, verbose, nested)
414 while True:
415 itemsappend(_parse(source, state, verbose, nested + 1,
-> 416 не вложенные и не элементы)) 417, если не sourcematch ("|"): 418 break
~\AppData\Local\Continuum\anaconda3\lib\sre_parse.py in _parse(source, state, verbose, nested, first)
614 if not item or (_len(item) == 1 and item[0][0] is AT):
615 raise source.error("nothing to repeat",
-> 616 source.tell() - здесь + len (this)) 617, если item [0] [0] в _REPEATCODES: 618 повысить source.error («многократное повторение»,
error: nothing to repeat at position 0
. Кроме того, регулярное выражение также может быть^ CLK или? CLK или любое другое регулярное выражение, что является общим решением для устранения проблемы, когда передана любая строка с регулярным выражением