问题:试图理解其他人的代码。有人能解释一下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 "")
.............
.............发布于 2022-02-25 03:02:09
lambda x: x if x[:3] != '486' and x[:3] != '561' and x[:1] != '8' else ""本质上翻译为:
if x[:3] != '486' and x[:3] != '561' and x[:1] != '8':
return x
else:
return ""发布于 2022-02-25 03:01:43
如果条件的计算结果为True (将发生在您描述的实例中),则该条目将保持不变,如果满足这些等式中的任何一个,则条件计算为False,并将条目设置为空字符串。
发布于 2022-02-25 03:06:31
它过滤了OrderNumber从('486', '561', '8')开始的所有订单,并将其编号设置为空字符串""。
我想这些OrderNumbers对于当前的情况是无效的或者没有用的。
https://stackoverflow.com/questions/71260517
复制相似问题