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

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

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

我們知道現實中的數據通常是雜亂無章的,需要大量的預處理才能使用。Pandas 是應用最廣泛的數據分析和處理庫之一,它提供了多種對原始數據進行預處理的方法。

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

上述數據中 NaN 表示的缺失值,id 列包含重復的值,B 列中的 112 似乎是一個異常值。

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

第一個函數是處理缺少的值

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

我喜歡用列的平均值替換數字列中缺少的值,當然你也可以根據具體場景來定義。只要它將數據幀作為參數并返回數據幀,它就可以在管道中工作。

第二個函數是幫助我們刪除重復的值

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

調用 Pandas 內置的 drop duplicates 函數,它可以消除給定列中的重復值。

最后一個函數是用于消除異常值

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

此函數的作用如下:

  • 需要一個數據幀和一列列表
  • 對于列表中的每一列,它計算平均值和標準偏差
  • 計算標準差,并使用下限平均值
  • 刪除下限和上限定義的范圍之外的值

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

創(chuàng)建管道

我們現在有3個函數來進行數據預處理的任務。接下來就是使用這些函數創(chuàng)建管道。

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

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

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

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

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

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

讓我們看一下原始數據幀和處理后的數據幀:

結論

當然,你可以通過單獨使用這些函數來完成相同的任務。但是,管道函數提供了一種結構化和有組織的方式,可以將多個功能組合到單個操作中。

根據原始數據和任務,預處理可能包括更多步驟??梢愿鶕枰诠艿篮瘮抵刑砑尤我鈹盗康牟襟E。隨著步驟數量的增加,與單獨執(zhí)行函數相比,管道函數的語法變得更清晰。

以上就是python優(yōu)化數據預處理方法Pandas pipe詳解的詳細內容,更多關于pandas pipe數據預處理優(yōu)化的資料請關注腳本之家其它相關文章!

相關文章

  • LyScript實現Hook隱藏調試器的方法詳解

    LyScript實現Hook隱藏調試器的方法詳解

    LyScript?插件集成的內置API函數可靈活的實現繞過各類反調試保護機制。本文將運用LyScript實現繞過大多數通用調試機制,實現隱藏調試器的目的,需要的可以參考一下
    2022-09-09
  • python使用技巧-標準輸入

    python使用技巧-標準輸入

    這篇文章主要介紹了python使用技巧標準輸入,標準輸入即stdin ,下文圍繞python使用技巧標準輸入相關資料展開學習內容,具有一的參考價值,需要的小伙伴可以參考一下
    2022-02-02
  • python如何通過pyqt5實現進度條

    python如何通過pyqt5實現進度條

    這篇文章主要介紹了python如何通過pyqt5實現進度條,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • Python實現將數據庫一鍵導出為Excel表格的實例

    Python實現將數據庫一鍵導出為Excel表格的實例

    下面小編就為大家?guī)硪黄狿ython實現將數據庫一鍵導出為Excel表格的實例。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • Python中print函數簡單使用總結

    Python中print函數簡單使用總結

    在本篇文章里小編給大家整理的是關于Python中怎么使用print函數的相關知識點內容,需要的朋友們可以學習下。
    2019-08-08
  • python中elasticsearch_dsl模塊的使用方法

    python中elasticsearch_dsl模塊的使用方法

    這篇文章主要介紹了python中elasticsearch_dsl模塊的使用方法,elasticsearch-dsl是基于elasticsearch-py封裝實現的,提供了更簡便的操作elasticsearch的方法
    2022-09-09
  • Python如何利用正則表達式爬取網頁信息及圖片

    Python如何利用正則表達式爬取網頁信息及圖片

    這篇文章主要給大家介紹了關于Python如何利用正則表達式爬取網頁信息及圖片的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Python面向對象類編寫細節(jié)分析【類,方法,繼承,超類,接口等】

    Python面向對象類編寫細節(jié)分析【類,方法,繼承,超類,接口等】

    這篇文章主要介紹了Python面向對象類編寫細節(jié),較為詳細的分析了Python面向對象程序設計中類,方法,繼承,超類,接口等相關概念、使用技巧與注意事項,需要的朋友可以參考下
    2019-01-01
  • Flask框架運用Ajax實現數據交互的示例代碼

    Flask框架運用Ajax實現數據交互的示例代碼

    使用Ajax技術網頁應用能夠快速地將增量更新呈現在用戶界面上,而不需要重載刷新整個頁面,這使得程序能夠更快地回應用戶的操作,本文將簡單介紹使用AJAX如何實現前后端數據通信
    2022-11-11
  • 使用Python實現炫酷的數據動態(tài)圖大全

    使用Python實現炫酷的數據動態(tài)圖大全

    數據可視化是通過圖形、圖表、地圖等可視元素將數據呈現出來,以便更容易理解、分析和解釋,它是將抽象的數據轉化為直觀形象的過程,本文給大家介紹了使用Python實現炫酷的數據動態(tài)圖大全,需要的朋友可以參考下
    2024-06-06

最新評論