df.replace显示错误,但未将to_replace格式化为str

2024-06-26 14:10:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从我的单词列表中删除所有符号,我为这些符号创建了一个熊猫数据框“df”。我知道有更简单的方法,但我想尝试一下我的方法,首先在np.array中列出唯一的字符,然后使用for循环,我只将字母表中的特殊字符分离出来,然后将这些特殊字符放入另一个np.array中。 我的符号数组

symbols= 
[['!']
 ['&']
 ["'"]
 ['(']
 [')']
 [',']
 ['-']
 ['.']
 ['1']
 ['2']
 ['3']
 [':']
 [';']
 ['?']
 ['[']
 [']']]

现在,我为符号数组中的每个项运行for循环,并使用df.replace将其替换为空格(在此之前,我在所有符号之前添加了一个空格,并创建了symbolspace,以避免替换“(”时出错)

for symbol in symbolspace:
    df=df.str.replace(str(symbol),"", regex= True)   

现在我的问题是,除了“-”之外,它做得很正确。但首先我用df.replace(symbol,"", regex= True)而不是df.replace(str(symbol),"", regex= True)尝试了这个,这给了我这个error: missing ), unterminated subpattern。请回答为什么我会出现这个错误。即使我不使用str(symbol),该数组符号空间的所有条目都已经是字符串(它显示str64)。为什么它对符号np.array中的“-”不起作用?它在我只写df.replace('-',"",regex=True)时起作用


Tags: 方法truedffornp符号数组symbol
1条回答
网友
1楼 · 发布于 2024-06-26 14:10:35

But at first I tried this with df.replace(symbol, "", regex= True) that gave me this error: missing ), unterminated subpattern.

在本例中,symbol是类似于['(']的列表。所以^{}将用""替换列表中的元素

出现错误的原因是您启用了regex,并且(是正则表达式中的一个特殊字符。它应该被)很好地包围起来

why did it not work for '-' from the symbol np.array?

执行str(symbol)操作时,列表将转换为类似['-']的字符串。由于使用regex=True启用regex模式,[]中的内容将被视为您希望匹配的一组字符^方括号中的{}被视为特殊字符。假设你写[a-c],它和[abc]一样

相关问题 更多 >