Python—— filter()与map()函数

—Python之filter()与map()函数

    数据中的格式:UserID::Gender::Age::Occupation::Zip-code
    
    #读取User数据
    users_title = ['UserID', 'Gender', 'Age', 'JobID', 'Zip-code']
    users = pd.read_table('./ml-1m/users.dat', sep='::', header=None, names=users_title, engine = 'python')
    users = users.filter(regex='UserID|Gender|Age|JobID')
    users_orig = users.values
  
    #改变User数据中性别和年龄
    gender_map = {'F':0, 'M':1}
    users['Gender'] = users['Gender'].map(gender_map)

1.filter()函数

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

filter有两个参数。第一个参数可以是一个函数也可以是None,如果是一个函数的话,

则将第二个可迭代数据里的每一个元素作为函数的参数进行计算,把返回True的值筛选出来;

如果第一个参数为None,则直接将第二个参数中为True的值筛选出来。

filter(None,[1,0,False,True])

filter(None,[1,0,False,True])

[1, True]

list(filter(lambda x : x % 2,range(20))) 
#  等同于  def  f(x)
#                   return x%2   

[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

2.map()函数

map()函数 会根据提供的函数对指定序列做映射。

map()这个内置函数也有两个参数,仍然的有一个函数和一个可迭代序列,将序列的每一个元素作为函数的参数进行运算加工,直到可迭代序列每个元素都加工完毕,返回所有加工后的元素构成的新序列。

list(map(lambda x : x % 2,range(20)))

[0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1]

list(map(lambda x : x * 2,range(20)))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38]

list(map(lambda x : x + 2,range(20)))

[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]

你可能感兴趣的:(python)