我有一个数据框
data = ["Beer&", "&Whiskey", "Wine()","Tonic$", "Rum*"]
df = pd.DataFrame()
df['Col'] = data
Col
0 Beer&
1 &Whiskey
2 Wine()
3 Tonic$
4 Rum*
我想用单个字符替换特殊字符列表
spl_char = "$&+:;=?@#|'<>.^*()%!-"
char_list = list(spl_char)
df["Col"] = df["Col"].replace(dict.fromkeys(char_list, ','))
使用上述语法我没有看到任何变化。
当我尝试使用时str
,出现以下错误
df["Col"] = df["Col"].str.replace(dict.fromkeys(char_list, ','))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-41-53b53a25fc97> in <module>()
----> 1 df["Col"] = df["Col"].str.replace(dict.fromkeys(char_list, ','))
/usr/local/lib/python3.7/dist-packages/pandas/core/strings.py in wrapper(self, *args, **kwargs)
1999 )
2000 raise TypeError(msg)
-> 2001 return func(self, *args, **kwargs)
2002
2003 wrapper.__name__ = func_name
TypeError: replace() missing 1 required positional argument: 'repl'
如何用单个字符替换所有特殊字符?
只需将不包括字母数字的所有内容替换为空。代码如下。
df['Col']= df['Col'].str.replace('[^\w]', '')
Col
0 Beer
1 Whiskey
2 Wine
3 Tonic
4 Rum
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句