您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關python中如何使用map()函數,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
map() 會根據提供的函數對指定序列做映射。第一個參數 function 以參數序列中的每一個元素調用 function 函數,返回包含每次 function 函數返回值的新列表。
map() 函數語法:map(function, iterable, ...)
function -- 函數 iterable -- 一個或多個序列
Python 2.x 返回列表。Python 3.x 返回迭代器。
以下實例展示了 map() 的使用方法:
>>>def square(x) : # 計算平方數
... return x ** 2
>>> map(square, [1,2,3,4,5]) # 計算列表各個元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函數
[1, 4, 9, 16, 25]
# 提供了兩個列表,對相同位置的列表數據進行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]
假設我們拿到下面的一份CSV數據:
序號 | 城市 |
---|---|
1 | 中國上海 |
2 | 中國北京 |
3 | 澳大利亞 |
4 | 美國 |
我們目的是將中國的國家和城市提取出來分成兩列,然后外國的國家和城市不變。怎么實現呢?這就用到我們剛剛將的map()函數啦,將城市列作用于我們定義的函數,一起來看看怎么實現?
# 城市: 提取國家和城市
def transform_country(x):
if '中國' in x:
return '中國'
else:
return x
def transform_city(x):
if '中國' in x:
return x[2:]
else:
return x
df['國家'] = df.城市.map(lambda x: transform_country(x))
df['城市'] = df.城市.map(lambda x: transform_city(x))
最后的目標結果變成這樣:
序號 | 國家 | 城市 |
---|---|---|
1 | 中國 | 上海 |
2 | 中國 | 北京 |
3 | 澳大利亞 | 澳大利亞 |
4 | 美國 | 美國 |
看完上述內容,你們對python中如何使用map()函數有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。