Python Pandas:错误:缺失),位置2的未终止子模式

时间:2017-01-02 11:25:44

标签: python pandas

我有一个数据框,其中包含我想要替换的字符(((。但是这样做后我得到了错误:

data = [{'Title': 'set1((("a", "b", "c")))'},
     {'Title': 'set2((("d", "e", "f")))'},
     {'Title': 'set3((("g", "h", "i")))'},
     {'Title': 'set4((("j", "k", "l")))'},
     {'Title': 'set5((("m", "n", "o")))'},
     {'Title': 'set6((("p", "q", "r")))'}]

df = pd.DataFrame(data)
df

# df['Title'] = df['Title'].str.replace('set', 'M') # Works correctly
df['Title'] = df['Title'].str.replace('(((', '>>') # Not working

如何解决此错误,以便(((替换>>)))替换<<

2 个答案:

答案 0 :(得分:11)

var ul = document.createElement('ul'); var li; for (var i = 0; i < folders.length; i++) { li = document.createElement('li'); li.innerHTML = folders[i].childNodes[0].nodeValue; li.setAttribute('onclick', 'Toggle(this, true)'); li.setAttribute('class', 'first-level'); ul.appendChild(li); } document.getElementById('folders').innerHTML = ul.innerHTML; 中的{p> replace允许您使用pandas,而regex(中具有特殊含义,因此请使用regex

\(

pandas doc:pandas.Series.str.replace

答案 1 :(得分:3)

更通用的解决方案是使用re.escape

转义输入令牌
import re
inputToken = '((('
df['Title'] = df['Title'].str.replace(re.escape(inputToken), '>>')