[英]How to apply lambda function to column of dataframe correctly?
我有一個看起來像這樣的數據框:
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'
我怎樣才能解決這個問題?
您可以使用熊貓字符串方法,
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))
df['Name'] = df['Name'].apply(lambda x: re.sub("#[-+]?[0-9]+", " ", x))
1) 注意使用x
地方
2)您需要將結果存儲回數據幀
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.