如何在Pandas中的lambda函数中使用str.replace?

2024-04-25 01:33:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在lambda函数中使用str.replace()。 但是我很困惑,在使用str.replace()时,我在哪里传递lambda函数的参数, 详情如下

输入:

name_1
john&&
mary&&
tim&&

预期产出:

new_name
john
mary
tim

代码:

df1=pd.read_csv('names.txt',sep='\t')
df1['new_name'] = df1['name_1'].apply(lambda a: str.replace('&&',''))

错误:

replace() takes at least 2 arguments (1 given)

Tags: csvlambda函数代码namenewread参数
1条回答
网友
1楼 · 发布于 2024-04-25 01:33:17

正如其他人在评论中提到的,您可以简单地使用str.replace

df1['new_name'] = df1['name_1'].str.replace('&&','')

df1['new_name'] = df1['name_1'].apply(lambda a: str(a).replace('&&',''))

如果您坚持使用lambda函数,那么无论df1['name_1']中的值是否为字符串,它都会起作用。诀窍是在应用replace(,)之前将a指定为字符串 如果要替换单个unicode,请尝试:

df1['new_name'] = df1['name_1'].apply(lambda a: str(a).replace(u'\u0027',''))

由于我的知识肤浅,我不知道有什么内置的可以取代一系列的Unicode(我不是说它不存在!),但是如果你也找不到,你可能会考虑写一个循环。读一下:replace multiple strings

我希望有帮助

相关问题 更多 >