簡體   English   中英

熊貓中的lambda函數錯誤

[英]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'})

您必須閱讀l​​ambda語法,就像前面有一個return 而且您無法在lambda主體中進行分配:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM