最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中的map()、apply()、applymap()的區(qū)別小結(jié)

 更新時(shí)間:2023年10月26日 09:14:03   作者:對(duì)許  
map()、apply()和applymap()方法是Python中常用的轉(zhuǎn)換方法,,輸出的結(jié)果及類型完全取決于作為給定方法的參數(shù)的函數(shù),本文就來(lái)介紹一下這三種方法的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下

1、實(shí)驗(yàn)背景

Pandas庫(kù)被廣泛用于數(shù)據(jù)處理和分析。map()、apply()和applymap()方法是Python中常用的轉(zhuǎn)換方法,輸出的結(jié)果及類型完全取決于作為給定方法的參數(shù)的函數(shù)

在日常數(shù)據(jù)處理過(guò)程中,會(huì)經(jīng)常遇到這樣的情況,對(duì)一個(gè)DataFrame進(jìn)行逐行/逐列、多行/多列或逐元素的操作,很多同學(xué)可能知道需要用到map()、apply()或者applymap(),但是不知道什么情況下用哪種方法

本文將通過(guò)一個(gè)小實(shí)驗(yàn)來(lái)探討Python中的map()、apply()和applymap()的區(qū)別和使用場(chǎng)景,并得出結(jié)論

2、實(shí)驗(yàn)過(guò)程

數(shù)據(jù)準(zhǔn)備:

import numpy as np
import pandas as pd

df = pd.DataFrame({'A': [1, 4, 7], 'B': [2, 5, 8], 'C': [3, 6, 9]})
print(df)
'''
   A  B  C
0  1  2  3
1  4  5  6
2  7  8  9
'''

map()、apply()和applymap()區(qū)別演示:

1)map()

map(func, *iter):Python內(nèi)置高級(jí)函數(shù),用于對(duì)一個(gè)或多個(gè)可迭代序列的每個(gè)元素執(zhí)行函數(shù)func,例如Series

# 基本使用
df['D'] = list(map(lambda a, b: a + b, df.A, df.B))
print(df)
'''
   A  B  C   D
0  1  2  3   3
1  4  5  6   9
2  7  8  9  15
'''
df['E'] = list(map(lambda a, b: [a, b], df.A, df.B))
print(df)
'''
   A  B  C   D       E
0  1  2  3   3  [1, 2]
1  4  5  6   9  [4, 5]
2  7  8  9  15  [7, 8]
'''

# 應(yīng)用多個(gè)函數(shù)收集:對(duì)A、B兩列應(yīng)用求平均和求和函數(shù),將結(jié)果收集到列表
df['F'] = [list(map(lambda f: f(a, b), [lambda x, y: (x+y)/2, lambda x, y: x+y])) for a, b in zip(df.A, df.B)]
print(df)
'''
   A  B  C   D       E          F
0  1  2  3   3  [1, 2]   [1.5, 3]
1  4  5  6   9  [4, 5]   [4.5, 9]
2  7  8  9  15  [7, 8]  [7.5, 15]
'''

2)apply()

apply(func, axis=0):Pandas DataFrame/Series對(duì)象的方法,對(duì)df某一列/多列或某一行/多行中的元素執(zhí)行函數(shù)func,默認(rèn)axis=0為列

# 對(duì)某一列的每個(gè)元素執(zhí)行函數(shù)
df['D'] = df['A'].apply(lambda e: e ** 2)
# 對(duì)指定多列的每個(gè)元素執(zhí)行函數(shù)
df[['E', 'F']] = df[['A', 'B']].apply(lambda e: -e)
# 對(duì)某一行的每個(gè)元素執(zhí)行函數(shù)
# 除了pd.concat(),在原df基礎(chǔ)上增量追加一行可使用如下方式(不能使用該方式添加多行)
df.loc[3] = df.loc[0].apply(lambda e: e ** 2)
# 對(duì)指定多行的每個(gè)元素執(zhí)行函數(shù)
df = pd.concat([df, df.loc[0: 1, :].apply(lambda e: -e)], ignore_index=True)
print(df)
'''
   A  B  C   D  E  F
0  1  2  3   1 -1 -2
1  4  5  6  16 -4 -5
2  7  8  9  49 -7 -8
3  1  4  9   1  1  4
4 -1 -2 -3  -1  1  2
5 -4 -5 -6 -16  4  5
'''
 
# 對(duì)所有列分別計(jì)算sum
# df.index.values[-1]:獲取最后一個(gè)索引值
df.loc[df.index.values[-1]+1] = df.apply(np.sum)
print(df)
'''
    A   B   C
0   1   2   3
1   4   5   6
2   7   8   9
3  12  15  18
'''
# 對(duì)所有行分別計(jì)算sum
df['sum'] = df.apply(np.sum, axis=1)
print(df)
'''
   A  B  C  sum
0  1  2  3    6
1  4  5  6   15
2  7  8  9   24
'''
# 對(duì)DataFrame每個(gè)元素執(zhí)行函數(shù)
print(df.apply(lambda e: e + 1))
'''
   A  B   C
0  2  3   4
1  5  6   7
2  8  9  10
'''

3)applymap()

applymap(func)/df.map(func):Pandas DataFrame對(duì)象的方法,Series不支持,用于對(duì)df的每個(gè)元素執(zhí)行函數(shù)func,且將來(lái)會(huì)被df.map()替換

在使用Series對(duì)象執(zhí)行時(shí)報(bào)錯(cuò)如下:

AttributeError: 'Series' object has no attribute 'applymap'

在使用DataFrame對(duì)象執(zhí)行時(shí)警告如下:

FutureWarning: DataFrame.applymap has been deprecated. Use DataFrame.map instead.

print(df.applymap(lambda e: e + 1))
print(df.map(lambda e: e + 1))
'''
   A  B   C
0  2  3   4
1  5  6   7
2  8  9  10
'''

3、實(shí)驗(yàn)結(jié)論

1) map(func, *iter)是Python內(nèi)置高級(jí)函數(shù),可以直接調(diào)用,用于對(duì)一個(gè)或多個(gè)可迭代序列的每個(gè)元素執(zhí)行函數(shù)

2) apply(func, axis=0)是DataFrame/Series對(duì)象的方法,用于對(duì)df某一列(Series)/多列或某一行(Series)/多行中的每個(gè)元素執(zhí)行函數(shù)

3) applymap(func)僅是DataFrame對(duì)象的方法,不支持Series,不能指定軸axis,用于對(duì)df的每個(gè)元素執(zhí)行函數(shù),且將來(lái)會(huì)被df.map()替換

4) 在對(duì)DataFrame或Series運(yùn)用apply()、applymap()的時(shí)候,必須保證所有的字段類型與函數(shù)的參數(shù)及結(jié)果一致

到此這篇關(guān)于Python中的map()、apply()、applymap()的區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)Python map()、apply()、applymap()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 搭建簡(jiǎn)單的http server,可直接post文件的實(shí)例

    python 搭建簡(jiǎn)單的http server,可直接post文件的實(shí)例

    今天小編就為大家分享一篇python 搭建簡(jiǎn)單的http server,可直接post文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Python利用PyMuPDF實(shí)現(xiàn)高效提取PDF文本與圖片

    Python利用PyMuPDF實(shí)現(xiàn)高效提取PDF文本與圖片

    本文介紹了PyMuPDF在處理PDF文檔中的強(qiáng)大功能,通過(guò)對(duì)比PyMuPDF與PyPDF2的性能和功能,展示了PyMuPDF在文本和圖片提取、批量處理等方面的卓越表現(xiàn),文內(nèi)提供了實(shí)戰(zhàn)代碼示例,希望可以幫助讀者快速掌握PyMuPDF的高效用法
    2026-04-04
  • 兩個(gè)使用Python腳本操作文件的小示例分享

    兩個(gè)使用Python腳本操作文件的小示例分享

    這篇文章主要介紹了兩個(gè)使用Python腳本操作文件的小示例分享,兩個(gè)程序包括創(chuàng)建和讀寫(xiě)文件等功能,需要的朋友可以參考下
    2015-08-08
  • django有外鍵關(guān)系的兩張表如何相互查找

    django有外鍵關(guān)系的兩張表如何相互查找

    這篇文章主要介紹了django有外鍵關(guān)系的兩張表如何相互查找,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • python 輸出上個(gè)月的月末日期實(shí)例

    python 輸出上個(gè)月的月末日期實(shí)例

    下面小編就為大家分享一篇python 輸出上個(gè)月的月末日期實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python 列表推導(dǎo)式需要注意的地方

    Python 列表推導(dǎo)式需要注意的地方

    這篇文章主要介紹了Python 列表推導(dǎo)式需要注意的地方,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-10-10
  • 使用python代碼進(jìn)行身份證號(hào)校驗(yàn)的實(shí)現(xiàn)示例

    使用python代碼進(jìn)行身份證號(hào)校驗(yàn)的實(shí)現(xiàn)示例

    這篇文章主要介紹了使用python代碼進(jìn)行身份證號(hào)校驗(yàn)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • flask post獲取前端請(qǐng)求參數(shù)的三種方式總結(jié)

    flask post獲取前端請(qǐng)求參數(shù)的三種方式總結(jié)

    這篇文章主要介紹了flask post獲取前端請(qǐng)求參數(shù)的三種方式總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python中的面向?qū)ο缶幊淘斀?下)

    Python中的面向?qū)ο缶幊淘斀?下)

    這篇文章主要介紹了Python中的面向?qū)ο缶幊淘斀?下),本文講解了繼承、super關(guān)鍵字、重寫(xiě)、多重繼承、類、實(shí)例和其他對(duì)象的內(nèi)建函數(shù)、私有化等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • PyCharm連接遠(yuǎn)程服務(wù)器配置的全過(guò)程

    PyCharm連接遠(yuǎn)程服務(wù)器配置的全過(guò)程

    這篇文章主要介紹了PyCharm連接遠(yuǎn)程服務(wù)器配置的全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評(píng)論

莫力| 柏乡县| 宽城| 龙岩市| 安乡县| 石台县| 无棣县| 佳木斯市| 綦江县| 通化市| 临夏市| 栾川县| 宜川县| 威宁| 乐清市| 什邡市| 北碚区| 北川| 莱州市| 宁阳县| 遂宁市| 格尔木市| 古丈县| 肇东市| 扎囊县| 万年县| 昌吉市| 铜川市| 汉阴县| 常州市| 安龙县| 广元市| 海宁市| 景洪市| 龙岩市| 民和| 类乌齐县| 五指山市| 扎鲁特旗| 涿鹿县| 章丘市|