【发布时间】:2020-03-05 10:54:12
【问题描述】:
我正在尝试从我的 pandas 数据框的“演员”列中删除特殊字符,例如“、”、“。”、“-”(逗号除外)。为此,我在“演员”列上使用了 apply 方法
df['Actors']= df['Actors'].apply(lambda x : x.lower().replace("[^a-zA-Z,]","",)
df['Actors'].head()
上面sn-p的输出如下所示,我们可以看到没有特殊字符被替换:
1 tim robbins, morgan freeman, bob gunton, willi...
2 marlon brando, al pacino, james caan, richard ...
3 al pacino, robert duvall, diane keaton, robert...
4 christian bale, heath ledger, aaron eckhart, m...
5 martin balsam, john fiedler, lee j. cobb, e.g....
Name: Actors, dtype: object
但是当我尝试使用下面的 sn-p 解决上述问题时,代码有效:
df['Actors'] = df['Actors'].str.lower().str.replace("[^a-zA-Z,]","")
df['Actors'].head()
1 timrobbins,morganfreeman,bobgunton,williamsadler
2 marlonbrando,alpacino,jamescaan,richardscastel...
3 alpacino,robertduvall,dianekeaton,robertdeniro
4 christianbale,heathledger,aaroneckhart,michael...
5 martinbalsam,johnfiedler,leejcobb,egmarshall
Name: Actors, dtype: object
我想知道apply函数在替换字符时不能正常工作是怎么回事?
【问题讨论】:
标签: python regex pandas dataframe apply