Pandas的lambda函数错误

2024-04-20 06:55:09 发布

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

我有一个数据框sp,其中有一个名为Status的列。Status列中的值为'Done'或{}。我需要使用lambda函数更改Status列的值,其中'Done'的状态更改为'A',状态{}更改为{}。我就是这样做的:

sp['Status'] = sp['Status'].apply(lambda x: x='A' if x=='Done' else x='N')

然后收到以下错误消息:

^{pr2}$

我哪里做错了?在


Tags: 数据lambda函数消息if状态status错误
2条回答

您必须阅读lambda语法,就像前面有一个return。并且不能在lambda主体中指定:

sp['Status'] = sp['Status'].apply(lambda x: 'A' if x=='Done' else 'N')

不能在lambda(只接受表达式)内使用赋值(语句)。在

lambda应该只返回新值:

sp['Status'] = sp['Status'].apply(lambda x: 'A' if x == 'Alive' else 'N')

lambda中表达式的结果始终是返回值。在

请注意,您只需在此处使用^{}

^{pr2}$

相关问题 更多 >