繁体   English   中英

如何将特殊字符列表替换为 pandas dataframe 中的单个字符

[英]How to replace list of special characters to a single char in pandas dataframe

我有一个 dataframe

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM