
在使用python清理數據時,會接觸到lambda表達式配合使用的四種函數、它們分別是:filter函數、map函數、sorted函數、reduce函數。下面我們來為大家詳細講解python清理數據領域的知識。
什么是lambda表達式
lambda 表達式是一個匿名函數,lambda表達式基于數學中的λ演算得名,直接對應于其中的lambda抽象,是一個匿名函數,即沒有函數名的函數。
lambda表達式常用來聲明匿名函數,即沒有函數名字的臨時使用的小函數,常用在臨時需要一個類似于函數的功能但又不想定義函數的場合。它只可以包含一個表達式,不允許包含其他復雜的語句,但在表達式中可以調用其他函數,該表達式的計算結果相當于函數的返回結果。
lambda表達式可以接受任意數量的參數,但函數只能包含一個表達式。表達式是lambda函數執行的一段代碼,它可以返回任何值,返回函數對象。
lambda表達式可以返回函數對象。
在Python中,lambda的語法是唯一的。其形式如下:
我們可以有很多個參數,但是只能有一個表達式。lambda操作符不能有任何聲明,它返回一個函數對象。其中,lambda是Python預留的關鍵字,argument_list和expression由用戶自定義。
lambda函數有如下特性:
下面是一些lambda表達式的基本用法示例:
lambda表達式返回的是一個函數對象,其本質上只有一種用法,那就是定義一個lambda匿名函數。在實際中,根據這個lambda函數應用場景的不同,lambda函數的用法有很多種,其中一種就是將lambda函數作為參數傳遞給其他函數。
Python有少數內置函數可以接收lambda函數作為參數,進行組合使用,這也是最為常見的一種用法。典型的此類內置函數有一下這四種。filter函數:篩選列表中所有滿足條件的元素,lambda函數作為過濾列表元素的條件。
filter( )函數用于過濾序列,過濾掉不符合條件的元素,返回一個迭代器對象,注意返回的不是列表,如果要轉換為列表,可以使用 list()來轉換。
該函數接收兩個參數,第一個為函數,第二個為序列,filter函數的重點在于過濾,所以它必須有一個用于判斷的工具,這就是function參數的函數,傳入的函數返回值必須是布爾類型,序列的每個元素作為參數逐個傳遞給函數進行判斷,然后返回 True 或 False,最后將返回 True 的元素放到新列表中。
簡單示例一:
簡單示例二:
簡單示例三:
map( )會根據提供的函數對指定序列做映射,即根據傳入的函數逐一對序列中的元素進行計算。
該函數至少接收兩個參數,第一個參數為函數function,第二個參數為可迭代對象iterable,第二個參數序列中的每一個元素調用第一個參數 function函數來進行計算,返回包含每次 function 函數返回值的可迭代對象,map( )函數和filter( )函數一樣,在python3版本中返回的都是可迭代對象,有需要的話用list( )函數將其轉換成列表格式。
簡單示例一:
簡單示例二:
map( )函數可以僅對一個序列進行運算,也可以輸入多個序列進行并行運算,對多個序列同一位置的元素來逐步進行運算。序列不要求長度必須相同,最后返回的結果遵循木桶準則,以多個序列中長度最短的長度為準,即傳入一個長度為4的序列,一個長度為7的序列,最終返回的序列長度為4。
簡單示例三:
sorted( ) 函數的作用是對所有可迭代的對象進行排序操作。它和sort函數的作用類似,但它們之間還是有一些區別:
執行結果:
語法:
sorted(iterable, key=None, reverse=False)
參數說明:
返回:
重新排序后的列表,無論用什么可迭代對象進行排序,最終返回的都是列表。
簡單示例一:
一維的序列無需key參數,只需要可迭代對象和reverse排序規則即可,注意,第一個參數可以默認為iterable可迭代對象,不可更改順序,后兩個可選參數傳入函數時,必須包含變量名稱,例如
簡單示例二:
二維及以上的序列可以使用key參數傳入lambda匿名函數結合使用,實現按條件排序的作用,lambda函數的左右主要是用來指定用以排序的目標。
執行結果:
reduce() 函數在 python 2 是內置函數, 從python 3 開始移到了 functools 模塊。所以在使用前需要先導入,否則無法直接使用。
reduce函數的功能是,從左到右對一個序列的項逐個地應用一個有兩個參數的函數,用函數的功能對序列的項逐個的進行運算,最終返回所使用的函數的結果。例如:
reduce有三個參數,分別是
function有兩個參數的函數, 必需參數sequencetuple ,list ,dictionary, string等可迭代對象,必需參數initial初始值, 可選參數,默認為0
reduce的工作過程是 :在迭代sequence(tuple ,list ,dictionary, string等可迭代對象)的過程中,首先把前兩個元素傳給函數參數,函數加工后,然后把得到的結果和第三個元素作為兩個參數傳給函數參數, 函數加工后得到的結果又和第四個元素作為兩個參數傳給函數參數,依次類推。如果傳入了initial值,那么首先傳的就不是 sequence的第一個和第二個元素,而是initial值和第一個元素。經過這樣的累計計算之后合并序列到一個單一返回值。
將前面的例子中的加號改為乘號,實際上就從求和的函數變為求階乘的函數:
我們再玩一些稍微復雜一些的用法,只是簡單基本的用法介紹,對新手來說,理解肯定是不夠的,所以下面講點更深入的例子,以元組、字典類型的數據序列為目標來進行操作,我們的目標是計算元組中每一個元素中對應的薪資(wage)的平均數:
也能用t實它現分組:
通過以上兩個案例可以看出,簡單加減示例中很少出現的初始值參數initial恰恰是實現復雜目標的最重要的點,它可以說是整個實現過程中的地基,是塑造最終結果的骨骼。
更復雜的操作就沒必要使用reduce+lambdal了,可以使用一些其他的函數或者自定義來進行處理。
以上四種就是能和lambda函數結合一起使用的函數,除了reduce函數在python3中移到了 functools 模塊。需要先導入模塊才能使用,其他三種都是python的內置函數,可以直接使用。它們之中有一些相同點和不同點,通過總結后更方便區分和以后的使用。
相同點:
1、都是用以處理可迭代對象;
2、都可以配合lambda匿名函數進行使用;
不同點:
1、功能不同,lambda函數的作用不同
filter函數:篩選列表中所有滿足條件的元素,lambda函數作為過濾列表元素的條件。關鍵詞:篩選
map函數:根據提供的函數對指定序列做映射,lambda函數作為映射。關鍵詞:映射
sorted函數:對列表中所有元素進行排序,lambda函數可以用于指定排序規則。關鍵詞:排序
reduce函數:列表中兩兩相鄰元素逐一進行運算,lambda函數用于指定運算條件。關鍵詞:元素間運算
2、reduce函數不是內置函數
3、參數個數不同、序列和函數的傳入順序要求不同
記住不同函數的功能,最好的方法就是函數名,filter的意思為過濾器、過濾;map有提供信息(尤指其編排或組織方式)的意思,sorted則是排序,整理的意思,reduce為減少,縮小的意思。如此一看,就能很深刻的記住這幾種函數的作用和用法了。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25