Python 如何将数据帧中的特殊字符列表替换为单个字符
我有一个数据帧Python 如何将数据帧中的特殊字符列表替换为单个字符,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据帧 data = ["Beer&", "&Whiskey", "Wine()","Tonic$", "Rum*"] df = pd.DataFrame() df['Col'] = data 我想用单个字符替换特殊字符列表 spl_char = "$&+:;=?@#|'<>.^*()%!-" char_list = list(s
data = ["Beer&", "&Whiskey", "Wine()","Tonic$", "Rum*"]
df = pd.DataFrame()
df['Col'] = data
我想用单个字符替换特殊字符列表
spl_char = "$&+:;=?@#|'<>.^*()%!-"
char_list = list(spl_char)
df["Col"] = df["Col"].replace(dict.fromkeys(char_list, ','))
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
---->1 df[“Col”]=df[“Col”].str.replace(dict.fromkeys(char_list,,'))
/包装器中的usr/local/lib/python3.7/dist-packages/pandas/core/strings.py(self,*args,**kwargs)
1999 )
2000提升类型错误(msg)
->2001返回函数(self,*args,**kwargs)
2002
2003包装器。名称=函数名称
TypeError:replace()缺少1个必需的位置参数:“repl”
如何用单个字符替换所有特殊字符?只需将字母数字以外的所有字符替换为零即可。代码如下
df['Col']= df['Col'].str.replace('[^\w]', '')
Col
0 Beer
1 Whiskey
2 Wine
3 Tonic
4 Rum
只需将除字母数字以外的所有内容替换为零即可。代码如下
df['Col']= df['Col'].str.replace('[^\w]', '')
Col
0 Beer
1 Whiskey
2 Wine
3 Tonic
4 Rum
很好,我没想到。如果OP只需要字母数字,那么这绝对是最好的方法;)不用
[^\w]
,可以简单地使用\w
不错,我没想到。如果OP只需要字母数字,那么这绝对是最好的方法;)您只需使用\w
---------------------------------------------------------------------------
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