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

詳解Pandas的三大利器(map,apply,applymap)

 更新時間:2022年02月25日 11:43:20   作者:Python學(xué)習(xí)與數(shù)據(jù)挖掘  
這篇文章主要為大家介紹了pandas中的三大利器: map、apply、applymap,他們經(jīng)常在進行數(shù)據(jù)處理的時候用到,需要的可以參考一下

實際工作中,我們在利用 pandas進行數(shù)據(jù)處理的時候,經(jīng)常會對數(shù)據(jù)框中的單行、多行(列也適用)甚至是整個數(shù)據(jù)進行某種相同方式的處理,比如將數(shù)據(jù)中的 sex字段將 男替換成1,女替換成0。

在這個時候,很容易想到的是 for循環(huán)。用 for循環(huán)是一種很簡單、直接的方式,但是運行效率很低。本文中介紹了 pandas中的三大利器: map、apply、applymap 來解決上述同樣的需求。

  • map
  • apply
  • applymap

模擬數(shù)據(jù)

通過一個模擬的數(shù)據(jù)來說明3個函數(shù)的使用,在這個例子中學(xué)會了如何生成各種模擬數(shù)據(jù)。數(shù)據(jù)如下:

import pandas as pd
import numpy as np

boolean = [True, False]
gender = ["男","女"]
color = ["white","black","red"]

# 好好學(xué)習(xí)如何生成模擬數(shù)據(jù):非常棒的例子
# 學(xué)會使用random模塊中的randint方法

df = pd.DataFrame({"height":np.random.randint(160,190,100),
                     "weight":np.random.randint(60,90,100),
                     "smoker":[boolean[x] for x in np.random.randint(0,2,100)],
                     "gender":[gender[x] for x in np.random.randint(0,2,100)],
                     "age":np.random.randint(20,60,100),
                     "color":[color[x] for x in np.random.randint(0,len(color),100)]
                    })
df.head()

1、map

demo

map() 會根據(jù)提供的函數(shù)對指定序列做映射。

第一個參數(shù) function 以參數(shù)序列中的每一個元素調(diào)用 function 函數(shù),返回包含每次 function 函數(shù)返回值的新列表。

map(function, iterable)

實際數(shù)據(jù)

將gender中男變成1,女變成0

# 方式1:通過字典映射實現(xiàn)
dic = {"男":1, "女":0}  # 通過字典映射
df1 = df.copy()   # 副本,不破壞原來的數(shù)據(jù)df
df1["gender"] = df1["gender"].map(dic)
df1

# 方式2:通過函數(shù)實現(xiàn)
def map_gender(x):
    gender = 1 if x == "男" else 0
    return gender

df2 = df.copy()
# 將df["gender"]這個S型數(shù)據(jù)中的每個數(shù)值傳進去
df2["gender"] = df2["gender"].map(map_gender)
df2

2、apply

apply方法的作用原理和 map方法類似,區(qū)別在于 apply能夠傳入功能更為復(fù)雜的函數(shù),可以說 apply是 map的高級版

pandas 的 apply() 函數(shù)可以作用于 Series 或者整個 DataFrame,功能也是自動遍歷整個 Series 或者 DataFrame, 對每一個元素運行指定的函數(shù)。

在 DataFrame對象的大多數(shù)方法中,都會有 axis這個參數(shù),它控制了你指定的操作是沿著0軸還是1軸進行。 axis=0代表操作對 列columns進行, axis=1代表操作對 行row進行

demo

上面的數(shù)據(jù)中將age字段的值都減去3,即加上-3

def apply_age(x,bias):
? ? return x + bias

df4 = df.copy()
# df4["age"]當做第一個值傳給apply_age函數(shù),args是第二個參數(shù)
df4["age"] = df4["age"].apply(apply_age,args=(-3,))

計算BMI指數(shù)

# 實現(xiàn)計算BMI指數(shù):體重/身高的平方(kg/m^2)
def BMI(x):
    weight = x["weight"]
    height = x["height"] / 100
    BMI = weight / (height **2)

    return BMI

df5 = df.copy()
df5["BMI"] = df5.apply(BMI,axis=1)  # df5現(xiàn)在就相當于BMI函數(shù)中的參數(shù)x;axis=1表示在列上操作
df5

DataFrame型數(shù)據(jù)的 apply操作總結(jié):

  1. 當 axis=0時,對 每列columns執(zhí)行指定函數(shù);當 axis=1時,對 每行row執(zhí)行指定函數(shù)。
  2. 無論 axis=0還是 axis=1,其傳入指定函數(shù)的默認形式均為 Series,可以通過設(shè)置 raw=True傳入 numpy數(shù)組。
  3. 對每個Series執(zhí)行結(jié)果后,會將結(jié)果整合在一起返回(若想有返回值,定義函數(shù)時需要 return相應(yīng)的值)

apply實現(xiàn)需求

通過apply方法實現(xiàn)上面的性別轉(zhuǎn)換需求。apply方法中傳進來的第一個參數(shù)一定是函數(shù)

3、applymap

DF數(shù)據(jù)加1

applymap函數(shù)用于對DF型數(shù)據(jù)中的每個元素執(zhí)行相同的函數(shù)操作,比如下面的加1:

保留2位有效數(shù)字

到此這篇關(guān)于詳解Pandas的三大利器(map,apply,applymap)的文章就介紹到這了,更多相關(guān)Pandas map apply applymap內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?OLS?雙向逐步回歸方式

    Python?OLS?雙向逐步回歸方式

    這篇文章主要介紹了Python?OLS?雙向逐步回歸方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Python中函數(shù)及默認參數(shù)的定義與調(diào)用操作實例分析

    Python中函數(shù)及默認參數(shù)的定義與調(diào)用操作實例分析

    這篇文章主要介紹了Python中函數(shù)及默認參數(shù)的定義與調(diào)用操作,結(jié)合實例形式分析了Python中函數(shù)的定義及參數(shù)的使用技巧,需要的朋友可以參考下
    2017-07-07
  • 舉例講解Python中的算數(shù)運算符的用法

    舉例講解Python中的算數(shù)運算符的用法

    這篇文章主要介紹了舉例講解Python中的算數(shù)運算符的用法,是Python學(xué)習(xí)當中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • 使用python實現(xiàn)時間序列白噪聲檢驗方式

    使用python實現(xiàn)時間序列白噪聲檢驗方式

    這篇文章主要介紹了使用python實現(xiàn)時間序列白噪聲檢驗方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python簡單處理坐標排序問題示例

    Python簡單處理坐標排序問題示例

    這篇文章主要介紹了Python簡單處理坐標排序問題,結(jié)合實例形式分析了Python基于冒泡排序算法的坐標值排序相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • 使用Playwright進行視覺回歸測試詳解

    使用Playwright進行視覺回歸測試詳解

    這篇文章主要介紹了使用Playwright進行視覺回歸測試詳解,視覺回歸測試是一種軟件測試技術(shù),專注于檢測Web應(yīng)用程序或網(wǎng)站的用戶界面中的視覺變化和差異,需要的朋友可以參考下
    2023-08-08
  • 詳解基于Facecognition+Opencv快速搭建人臉識別及跟蹤應(yīng)用

    詳解基于Facecognition+Opencv快速搭建人臉識別及跟蹤應(yīng)用

    這篇文章主要介紹了詳解基于Facecognition+Opencv快速搭建人臉識別及跟蹤應(yīng)用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python3控制路由器——使用requests重啟極路由.py

    Python3控制路由器——使用requests重啟極路由.py

    通過本文給大家介紹Python3控制路由器——使用requests重啟極路由.py的相關(guān)知識,代碼寫了相應(yīng)的注釋,以后再寫成可以方便調(diào)用的模塊,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • Python Tensor FLow簡單使用方法實例詳解

    Python Tensor FLow簡單使用方法實例詳解

    這篇文章主要介紹了Python Tensor FLow簡單使用方法,結(jié)合實例形式詳細分析了Tensor FLow相關(guān)概念、原理、用法與操作注意事項,需要的朋友可以參考下
    2020-01-01
  • Python django中如何使用restful框架

    Python django中如何使用restful框架

    今天給大家?guī)淼氖顷P(guān)于Python框架的相關(guān)知識,文章圍繞著django中restful框架的使用展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06

最新評論

石河子市| 金沙县| 盐津县| 金阳县| 巨鹿县| 休宁县| 罗源县| 莎车县| 大兴区| 伊通| 肃宁县| 沧州市| 和平区| 乳源| 桃园市| 平罗县| 德庆县| 兴安县| 西乌珠穆沁旗| 彰武县| 白银市| 尤溪县| 秦皇岛市| 遂宁市| 牡丹江市| 麻栗坡县| 旌德县| 肥东县| 霍山县| 五寨县| 施甸县| 彰化县| 丰镇市| 湖口县| 八宿县| 遵化市| 林西县| 宿松县| 鹿邑县| 阳朔县| 肇庆市|