Python lambda函数if else condition

0 人关注

Question :试图理解别人的代码。谁能解释一下这里的lambda函数在做什么?这里的lambda函数是否翻译成。如果 OrderNumber 的前3个数字不是 486 ,也不是 561 ,并且第一个数字不是 8 ,那么将 dataframe 的列值 data_df[OrderNumber] 设为空字符串;否则保持原样?

import sqlalchemy as sq
import pandas as pd
data_df = pd.read_csv('/dbfs/FileStore/tables/CustomerOrders.txt', sep=',', low_memory=False, quotechar='"', header='infer' , encoding='cp1252')
data_df[OrderNumber] = data_df[OrderNumber].apply(lambda x: x if x[:3] != '486' and x[:3] != '561' and x[:1] != '8' else "")
.............
.............
    
2 个评论
你把它弄反了。当 if 条件为真时,它保持原样,否则就是空字符串。
只要把 else 读成 otherwise ,就应该很明显了。
python
pandas
nam
nam
发布于 2022-02-25
3 个回答
jhso
jhso
发布于 2022-02-25
已采纳
0 人赞同

替换代码0】本质上翻译为。

if x[:3] != '486' and x[:3] != '561' and x[:1] != '8':
    return x
else:
    return ""