我有一个看起来像这样的数据框:
data = {'Name':['Tom #111', 'nick #1313', 'krish', 'jack #2 lol'],
'Age':[20, 21, 19, 18]}
df = pd.DataFrame(data)
我想应用一个函数来摆脱任何hastag + numbers。我的代码如下所示:
df['Name'].apply(lambda x: re.sub("#[-+]?[0-9]+", " ", str(df['Name'])))
但是,结果如下所示:
0 0 Tom
1 0 Tom
2 0 Tom
3 0 Tom
我的预期输出是:
0 0 Tom
1 0 nick
2 0 krish
3 0 jack lol
我试图在lambda函数中使用axis = 1,但它给我一个错误:
TypeError: <lambda>() got an unexpected keyword argument 'axis'
我怎样才能解决这个问题?
您可以使用pandas字符串方法,
df['Name'] = df['Name'].str.replace('#\d+', '')
Name Age
0 Tom 20
1 nick 21
2 krish 19
3 jack lol 18
如果您想知道如何使用apply(绝对不优于str方法),
df['Name'] = df['Name'].apply(lambda x: re.sub('#\d+', '', x))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句