1. 程式人生 > >Python 函數隨筆 map()函數,lambda自定義函數

Python 函數隨筆 map()函數,lambda自定義函數

得到 python brush bsp span top pan home cti

map函數格式為:map(function, iterable, ...)

function:函數,含有兩參數

iterable:一個或多個序列

function函數可以自己創建,之前使用的是將csv文件內的內容替換,例如將‘是’替換成‘yes’,將一些中文替換成數字表示等。

iterable:一般是list,可以多個一起按照function函數進行映射。

ps:註意一些python版本問題的小改變:python2返回的是列表,python3返回的是叠代器。

代碼如下:

import pandas as pd
path = r‘C:\Users\dhw\Desktop\work\term paper\Home work_10\TREE.csv‘

#將數據中的中文含義用數據表示

def change_the_data(path):
    df = pd.read_csv(path)
    label_list = df[‘類別‘] #存入類別標簽
    label_list = map(lambda x:[x,‘yes‘][x==‘是‘],label_list)
    label_list = map(lambda x:[x,‘no‘][x==‘否‘],label_list)
    print(list(label_list))
    
change_the_data(path) 

 csv文件類別標簽打印出來為:

0 否
1 否
2 是
3 是
4 否
5 否
6 否
7 是
8 是
9 是
10 是
11 是
12 是
13 是
14 否

經過兩次map轉換後為:[‘no‘, ‘no‘, ‘yes‘, ‘yes‘, ‘no‘, ‘no‘, ‘no‘, ‘yes‘, ‘yes‘, ‘yes‘, ‘yes‘, ‘yes‘, ‘yes‘, ‘yes‘, ‘no‘]

匿名函數:lambda 格式為:lambda [arg1 [,arg2,.....argn]]:expression

冒號左邊→想要傳遞的參數 冒號右邊→想要得到的數(可能帶表達式)
 

Python 函數隨筆 map()函數,lambda自定義函數