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

python優(yōu)化數(shù)據(jù)預(yù)處理方法Pandas pipe詳解

 更新時(shí)間:2021年11月22日 10:07:54   作者:Python學(xué)習(xí)與數(shù)據(jù)挖掘  
在本文中,我們將重點(diǎn)討論一個(gè)將多個(gè)預(yù)處理操作組織成單個(gè)操作的特定函數(shù):pipe。我將通過示例方式來展示如何使用它,讓我們從數(shù)據(jù)創(chuàng)建數(shù)據(jù)幀開始吧

我們知道現(xiàn)實(shí)中的數(shù)據(jù)通常是雜亂無章的,需要大量的預(yù)處理才能使用。Pandas 是應(yīng)用最廣泛的數(shù)據(jù)分析和處理庫之一,它提供了多種對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理的方法。

import numpy as np
import pandas as pd
df = pd.DataFrame({
   "id": [100, 100, 101, 102, 103, 104, 105, 106],
   "A": [1, 2, 3, 4, 5, 2, np.nan, 5],
   "B": [45, 56, 48, 47, 62, 112, 54, 49],
   "C": [1.2, 1.4, 1.1, 1.8, np.nan, 1.4, 1.6, 1.5]
})
df

上述數(shù)據(jù)中 NaN 表示的缺失值,id 列包含重復(fù)的值,B 列中的 112 似乎是一個(gè)異常值。

這些就是現(xiàn)實(shí)數(shù)據(jù)中的一些典型問題。我們將創(chuàng)建一個(gè)管道來處理剛才描述的問題。對(duì)于每個(gè)任務(wù),我們都需要一個(gè)函數(shù)。因此,首先是創(chuàng)建放置在管道中的函數(shù)。需要注意的是,管道中使用的函數(shù)需要將數(shù)據(jù)幀作為參數(shù)并返回?cái)?shù)據(jù)幀。

第一個(gè)函數(shù)是處理缺少的值

def fill_missing_values(df):
   for col in df.select_dtypes(include= ["int","float"]).columns:
      val = df[col].mean()
      df[col].fillna(val, inplace=True)
   return df

我喜歡用列的平均值替換數(shù)字列中缺少的值,當(dāng)然你也可以根據(jù)具體場(chǎng)景來定義。只要它將數(shù)據(jù)幀作為參數(shù)并返回?cái)?shù)據(jù)幀,它就可以在管道中工作。

第二個(gè)函數(shù)是幫助我們刪除重復(fù)的值

def drop_duplicates(df, column_name):
   df = df.drop_duplicates(subset=column_name)
   return df
 

調(diào)用 Pandas 內(nèi)置的 drop duplicates 函數(shù),它可以消除給定列中的重復(fù)值。

最后一個(gè)函數(shù)是用于消除異常值

def remove_outliers(df, column_list):
   for col in column_list:
      avg = df[col].mean()
      std = df[col].std()
      low = avg - 2 * std
      high = avg + 2 * std
      df = df[df[col].between(low, high, inclusive=True)]
   return df

此函數(shù)的作用如下:

  • 需要一個(gè)數(shù)據(jù)幀和一列列表
  • 對(duì)于列表中的每一列,它計(jì)算平均值和標(biāo)準(zhǔn)偏差
  • 計(jì)算標(biāo)準(zhǔn)差,并使用下限平均值
  • 刪除下限和上限定義的范圍之外的值

與前面的函數(shù)一樣,你可以選擇自己的檢測(cè)異常值的方法。

創(chuàng)建管道

我們現(xiàn)在有3個(gè)函數(shù)來進(jìn)行數(shù)據(jù)預(yù)處理的任務(wù)。接下來就是使用這些函數(shù)創(chuàng)建管道。

df_processed = (df.pipe(fill_missing_values).pipe(drop_duplicates, "id").pipe(remove_outliers, ["A","B"]))

此管道按給定順序執(zhí)行函數(shù)。我們可以將參數(shù)和函數(shù)名一起傳遞給管道。

這里需要提到的一點(diǎn)是,管道中的一些函數(shù)修改了原始數(shù)據(jù)幀。因此,使用上述管道也將更新df。

解決此問題的一個(gè)方法是在管道中使用原始數(shù)據(jù)幀的副本。如果你不關(guān)心保持原始數(shù)據(jù)幀的原樣,那么可以在管道中使用它。

我將更新管道,如下所示:

my_df = df.copy()
df_processed = (my_df.pipe(fill_missing_values).pipe(drop_duplicates, "id").pipe(remove_outliers, ["A","B"]))

讓我們看一下原始數(shù)據(jù)幀和處理后的數(shù)據(jù)幀:

結(jié)論

當(dāng)然,你可以通過單獨(dú)使用這些函數(shù)來完成相同的任務(wù)。但是,管道函數(shù)提供了一種結(jié)構(gòu)化和有組織的方式,可以將多個(gè)功能組合到單個(gè)操作中。

根據(jù)原始數(shù)據(jù)和任務(wù),預(yù)處理可能包括更多步驟??梢愿鶕?jù)需要在管道函數(shù)中添加任意數(shù)量的步驟。隨著步驟數(shù)量的增加,與單獨(dú)執(zhí)行函數(shù)相比,管道函數(shù)的語法變得更清晰。

以上就是python優(yōu)化數(shù)據(jù)預(yù)處理方法Pandas pipe詳解的詳細(xì)內(nèi)容,更多關(guān)于pandas pipe數(shù)據(jù)預(yù)處理優(yōu)化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python編程itertools模塊處理可迭代集合相關(guān)函數(shù)

    Python編程itertools模塊處理可迭代集合相關(guān)函數(shù)

    本篇博客將為你介紹Python函數(shù)式編程itertools模塊中處理可迭代集合的相關(guān)函數(shù),有需要的朋友可以借鑒參考下,希望可以有所幫助
    2021-09-09
  • Python實(shí)現(xiàn)簡(jiǎn)單的HttpServer服務(wù)器示例

    Python實(shí)現(xiàn)簡(jiǎn)單的HttpServer服務(wù)器示例

    本篇文章主要介紹了Python實(shí)現(xiàn)簡(jiǎn)單的HttpServer服務(wù)器示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • python numpy和list查詢其中某個(gè)數(shù)的個(gè)數(shù)及定位方法

    python numpy和list查詢其中某個(gè)數(shù)的個(gè)數(shù)及定位方法

    今天小編就為大家分享一篇python numpy和list查詢其中某個(gè)數(shù)的個(gè)數(shù)及定位方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 詳解Python使用tensorflow入門指南

    詳解Python使用tensorflow入門指南

    本篇文章主要介紹了詳解Python使用tensorflow入門指南,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • Python?matplotlib繪制散點(diǎn)圖配置(萬能模板案例)

    Python?matplotlib繪制散點(diǎn)圖配置(萬能模板案例)

    這篇文章主要介紹了Python?matplotlib繪制散點(diǎn)圖配置(萬能模板案例),散點(diǎn)圖是指在??回歸分析???中,數(shù)據(jù)點(diǎn)在直角坐標(biāo)系平面上的?分布圖???,散點(diǎn)圖表示因變量隨??自變量???而?變化???的大致趨勢(shì),據(jù)此可以選擇合適的函數(shù)??對(duì)數(shù)???據(jù)點(diǎn)進(jìn)行?擬合
    2022-07-07
  • 跟老齊學(xué)Python之大話題小函數(shù)(1)

    跟老齊學(xué)Python之大話題小函數(shù)(1)

    今天本講要講什么呢?今天要介紹幾個(gè)python中的小函數(shù),這幾個(gè)函數(shù)都是從函數(shù)式編程借鑒過來的,它們就是:filter、map、reduce、lambda、yield 有了它們,最大的好處是程序更簡(jiǎn)潔
    2014-10-10
  • python用plotly實(shí)現(xiàn)繪制局部放大圖

    python用plotly實(shí)現(xiàn)繪制局部放大圖

    大家好,本篇文章主要講的是python用plotly實(shí)現(xiàn)繪制局部放大圖,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • Pandas檢查dataFrame中的NaN實(shí)現(xiàn)

    Pandas檢查dataFrame中的NaN實(shí)現(xiàn)

    本文主要介紹了Pandas檢查dataFrame中的NaN實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • python 協(xié)程中的迭代器,生成器原理及應(yīng)用實(shí)例詳解

    python 協(xié)程中的迭代器,生成器原理及應(yīng)用實(shí)例詳解

    這篇文章主要介紹了python 協(xié)程中的迭代器,生成器原理及應(yīng)用,結(jié)合具體實(shí)例形式詳細(xì)分析了Python協(xié)程中的迭代器,生成器概念、原理及應(yīng)用操作技巧,需要的朋友可以參考下
    2019-10-10
  • python xpath獲取頁面注釋的方法

    python xpath獲取頁面注釋的方法

    今天小編就為大家分享一篇python xpath獲取頁面注釋的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評(píng)論

永福县| 页游| 古田县| 德清县| 高雄县| 巫山县| 三河市| 中卫市| 青浦区| 衡水市| 久治县| 西青区| 凯里市| 遂平县| 白玉县| 南丰县| 石城县| 达拉特旗| 土默特右旗| 德保县| 南木林县| 长阳| 山阴县| 麻江县| 溧阳市| 姚安县| 青阳县| 富民县| 呼和浩特市| 武山县| 河曲县| 凤凰县| 凤翔县| 新民市| 福清市| 昌宁县| 扎兰屯市| 武隆县| 乌恰县| 宁城县| 青田县|