[英]Error with lambda function in pandas
我有一個數據框sp
其中包含名為Status
的列。 “ Status
列中的值為'Done'
或'Waiting'
。 我需要使用lambda函數更改“ Status
列的值,其中狀態'Done'
更改為'A'
,狀態'Waiting'
更改為'N'
。 這是我嘗試執行的操作:
sp['Status'] = sp['Status'].apply(lambda x: x='A' if x=='Done' else x='N')
然后,我收到以下錯誤消息:
sp['Status'] = sp['Status'].apply(lambda x: x='A' if x=='Done' else x='N')
^
SyntaxError: invalid syntax
我在哪里做錯了?
您不能在lambda(僅接受表達式)中使用賦值(語句)。
Lambda應該只返回新值:
sp['Status'] = sp['Status'].apply(lambda x: 'A' if x == 'Alive' else 'N')
lambda
表達式的結果始終是返回值。
請注意,您只在這里使用Series.map()
:
sp['Status'] = sp['Status'].map({'Alive': 'A', 'Waiting': 'N'})
您必須閱讀lambda語法,就像前面有一個return
。 而且您無法在lambda主體中進行分配:
sp['Status'] = sp['Status'].apply(lambda x: 'A' if x=='Done' else 'N')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.