首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python lambda函数(如果有其他条件)

Python lambda函数(如果有其他条件)
EN

Stack Overflow用户
提问于 2022-02-25 02:58:38
回答 3查看 158关注 0票数 0

问题:试图理解其他人的代码。有人能解释一下lambda函数在这里做什么吗?这里的lambda函数是否转换为:如果OrderNumber的前3位不是486而不是561,而第一个数字不是8,那么将dataframe的列值data_df[OrderNumber]设置为空字符串;否则保持原样?

代码语言:javascript
运行
复制
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 "")
.............
.............
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-02-25 03:02:09

lambda x: x if x[:3] != '486' and x[:3] != '561' and x[:1] != '8' else ""本质上翻译为:

代码语言:javascript
运行
复制
if x[:3] != '486' and x[:3] != '561' and x[:1] != '8':
    return x
else:
    return ""
票数 0
EN

Stack Overflow用户

发布于 2022-02-25 03:01:43

如果条件的计算结果为True (将发生在您描述的实例中),则该条目将保持不变,如果满足这些等式中的任何一个,则条件计算为False,并将条目设置为空字符串。

票数 0
EN

Stack Overflow用户

发布于 2022-02-25 03:06:31

它过滤了OrderNumber从('486', '561', '8')开始的所有订单,并将其编号设置为空字符串""

我想这些OrderNumbers对于当前的情况是无效的或者没有用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71260517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档