亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

理解Python數(shù)據(jù)離散化手寫if-elif語句與pandas中cut()方法實(shí)現(xiàn)

 更新時(shí)間:2023年05月18日 09:42:46   作者:奕澤  
這篇文章主要介紹了通過手寫if-elif語句與pandas中cut()方法實(shí)現(xiàn)示例理解Python數(shù)據(jù)離散化詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

當(dāng)我們進(jìn)行數(shù)據(jù)分析時(shí),有時(shí)候需要對(duì)數(shù)值型數(shù)據(jù)進(jìn)行離散化,將其劃分為不同的標(biāo)簽或類別。這樣做可以方便我們進(jìn)行統(tǒng)計(jì)和分析,并幫助我們更好地理解數(shù)據(jù)。

在本文中,我們將介紹兩種常見的離散化方法,并提供實(shí)現(xiàn)代碼。

方法一:使用條件語句

第一種方法是使用條件語句來顯式地檢查輸入值 x 是否在每個(gè)區(qū)間內(nèi),并返回相應(yīng)的標(biāo)簽。這種方法適用于自定義的分段方式,要求手動(dòng)設(shè)置每個(gè)閾值和對(duì)應(yīng)的標(biāo)簽。

下面是一個(gè)示例函數(shù) transfor_num 的實(shí)現(xiàn)代碼:

def transfor_num(x):
    if x ==0:
        label = '無交易'
    elif 0 < x <=0.01:
        label = '0-0.01'
    elif 0.01 < x <=0.04:
        label = '0.01-0.04'
    elif 0.04 < x <=0.09:
        label = '0.04-0.09'
    elif 0.09 < x <=0.49:
        label = '0.09-0.49'  
    elif 0.49 < x <=0.99:
        label = '0.49-0.99'
    elif 0.99 < x <=4.99:
        label = '0.99-4.99'    
    elif 4.99 < x <=9.99:
        label = '4.99-9.99'
    elif 9.99 < x <=19.99:
        label = '9.99-19.99'
    elif 19.99 < x <=49.99:
        label = '19.99-49.99'
    elif 49.99 < x <=99.99:
        label = '49.99-99.99'
    elif x > 99.99 :
        label = '100及以上'
    return label
# 你可以通過調(diào)用 transfor_num(x) 函數(shù)并將所需的值傳遞給 x 參數(shù)來使用該函數(shù)。例如:
label = transfor_num(5.67)
print(label)

輸出結(jié)果應(yīng)該是 '0.01-0.04',因?yàn)?5.67 在指定的區(qū)間范圍內(nèi)。

方法二:使用 pd.cut() 方法

第二種方法是使用 pandas 庫的 cut() 方法將輸入值 x 映射到不同的標(biāo)簽中,并返回標(biāo)簽。這種方法更加簡(jiǎn)潔和易于使用,同時(shí)也可以通過調(diào)整 bins 參數(shù)來靈活地控制分段的方式和結(jié)果。

下面是一個(gè)示例函數(shù) transfor_num1 的實(shí)現(xiàn)代碼:

def transfor_num1(x):
    bins = [-1,0, 0.01, 0.04, 0.09, 0.49, 0.99, 4.99, 9.99, 19.99, 49.99, 99.99, float('inf')]
    labels = [ '無交易','0-0.01', '0.01-0.04', '0.04-0.09', '0.09-0.49', '0.49-0.99', '0.99-4.99', '4.99-9.99', '9.99-19.99', '19.99-49.99', '49.99-99.99', '100及以上']
    return pd.cut(x, bins=bins, labels=labels)

你可以通過調(diào)用 transfor_num1(x) 函數(shù)并將所需的值傳遞給 x 參數(shù)來使用該函數(shù)。例如:

import pandas as pd

data = {'transaction': [0, 0.005, 0.0125, 0.044, 0.067, 0.55, 2.99, 8.75, 15.6, 30.25, 80.5, 150]}
df = pd.DataFrame(data)

df['tran_amount_label'] = transfor_num1(df['transaction'])

print(df)

# 輸出結(jié)果將會(huì)是如下數(shù)據(jù)框的形式:
    transaction  tran_amount_label
0       0.00000              無交易
1       0.00500            0-0.01
2       0.01250        0.01-0.04
3       0.04400        0.01-0.04
4       0.06700        0.04-0.09
5       0.55000        0.49-0.99
6       2.99000        0.99-4.99
7       8.75000        4.99-9.99
8      15.60000      9.99-19.99
9      30.25000     19.99-49.99
10     80.50000    49.99-99.99
11    150.00000           100及以上

其中 tran_amount_label 是新添加的一列,它顯示了每個(gè)交易額所屬的標(biāo)簽和類別。

兩種方法各有優(yōu)缺點(diǎn)。使用條件語句需要手動(dòng)設(shè)置閾值和對(duì)應(yīng)的標(biāo)簽,比較繁瑣;而使用 pd.cut() 方法則可以自動(dòng)劃分區(qū)間,但其不太靈活。因此,在具體使用時(shí),需要根據(jù)實(shí)際情況進(jìn)行選擇。

希望本文能夠幫助你更好地理解離散化的概念和實(shí)現(xiàn)方法,更多關(guān)于Python數(shù)據(jù)離散化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python存儲(chǔ)json數(shù)據(jù)發(fā)生亂碼的解決方法

    Python存儲(chǔ)json數(shù)據(jù)發(fā)生亂碼的解決方法

    當(dāng)使用json.dump()把python對(duì)象轉(zhuǎn)換為json后存儲(chǔ)到文件中時(shí),文件可能會(huì)出現(xiàn)亂碼的問題,本篇文章可以幫助您解決亂碼問題,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • 記一次python 內(nèi)存泄漏問題及解決過程

    記一次python 內(nèi)存泄漏問題及解決過程

    最近工作中慢慢開始用python協(xié)程相關(guān)的東西,所以用到了一些相關(guān)模塊,如aiohttp, aiomysql, aioredis等,用的過程中也碰到的很多問題,這里整理了一次內(nèi)存泄漏的問題。分享到腳本之家平臺(tái),需要的朋友參考下
    2018-11-11
  • 代碼分析Python地圖坐標(biāo)轉(zhuǎn)換

    代碼分析Python地圖坐標(biāo)轉(zhuǎn)換

    這篇文章主要介紹了Python地圖坐標(biāo)轉(zhuǎn)換的相關(guān)知識(shí)點(diǎn)以及分享了相關(guān)的代碼實(shí)例,對(duì)此有興趣的朋友學(xué)習(xí)下。
    2018-02-02
  • Python?xpath,JsonPath,bs4的基本使用

    Python?xpath,JsonPath,bs4的基本使用

    這篇文章主要介紹了Python?xpath,JsonPath,bs4的基本使用,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-07-07
  • Django前后端分離csrf token獲取方式

    Django前后端分離csrf token獲取方式

    這篇文章主要介紹了Django前后端分離csrf token獲取方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Pandas數(shù)據(jù)類型自行變換及數(shù)據(jù)類型轉(zhuǎn)換失敗問題分析與解決

    Pandas數(shù)據(jù)類型自行變換及數(shù)據(jù)類型轉(zhuǎn)換失敗問題分析與解決

    這篇文章主要介紹了Pandas數(shù)據(jù)類型自行變換及數(shù)據(jù)類型轉(zhuǎn)換失敗問題分析與解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python實(shí)現(xiàn)各種郵件發(fā)送

    Python實(shí)現(xiàn)各種郵件發(fā)送

    這篇文章主要介紹了Python實(shí)現(xiàn)各種郵件發(fā)送,Python內(nèi)置對(duì)SMTP的支持,可以發(fā)送純文本郵件、HTML郵件以及帶附件的郵件,下文詳細(xì)實(shí)現(xiàn)過程需要的小伙伴可以參考一下
    2022-05-05
  • python 讀取dicom文件,生成info.txt和raw文件的方法

    python 讀取dicom文件,生成info.txt和raw文件的方法

    今天小編就為大家分享一篇python 讀取dicom文件,生成info.txt和raw文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 跟老齊學(xué)Python之有容乃大的list(3)

    跟老齊學(xué)Python之有容乃大的list(3)

    現(xiàn)在是講lis的第三章了。俗話說,事不過三,不知道在開頭,我也不知道這一講是不是能夠把基礎(chǔ)的list知識(shí)講完呢。哈哈。其實(shí)如果真正寫文章,會(huì)在寫完之后把這句話刪掉的。而我則是完全像跟看官聊天一樣,就不刪除了。
    2014-09-09
  • Python3.10新特性之match語句示例詳解

    Python3.10新特性之match語句示例詳解

    這篇文章主要為大家介紹了Python3.10新特性之match語句示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02

最新評(píng)論