問題:試圖理解別人的代碼。有人可以解釋一下 lambda 函式在這里做什么嗎?此處的 lambda 函式是否轉換為: 如果OrderNumberare not486和 not的前 3 位數字561,并且第一個數字 is not8則將列值設定 data_df[OrderNumber]為dataframe空字串;否則保持原樣?
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 "")
.............
.............
uj5u.com熱心網友回復:
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 ""
uj5u.com熱心網友回復:
如果條件評估為 True(這將在您描述的實體中發生),則您將其倒退,則條目將保持不變,如果滿足這些等式中的任何一個,則條件評估為 False 并且輸入為空字串。
uj5u.com熱心網友回復:
它過濾了所有以 OrderNumber 開頭的訂單('486', '561', '8')并將其編號設定為空字串""
我猜這些 OrderNumbers 對當前情況無效或無用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/432392.html
上一篇:字典中的經過時間 datetime.timedelta
下一篇:如何將矩陣轉換為字符?
