中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
從數(shù)據(jù)清洗到機(jī)器學(xué)習(xí):Python缺失值處理指南

在數(shù)據(jù)分析和機(jī)器學(xué)習(xí)中,缺失值是一種常見(jiàn)的現(xiàn)象。在實(shí)際數(shù)據(jù)集中,某些變量的某些條目可能沒(méi)有可用的值。處理缺失值是一個(gè)重要的數(shù)據(jù)預(yù)處理步驟。在本文中,我們將介紹如何在 Pandas 中處理缺失值。我們將探討以下內(nèi)容:

  1. 什么是缺失值;
  2. 如何在 Pandas 中識(shí)別缺失值;
  3. 處理缺失值的常見(jiàn)方法;
  4. Pandas 中處理缺失值的代碼示例;
  5. 我們還提供了一個(gè)隨機(jī)生成的包含缺失值的較大數(shù)據(jù)集,可以使用這個(gè)數(shù)據(jù)集來(lái)練習(xí)和嘗試這些方法。

1.什么是缺失值

缺失值是指數(shù)據(jù)集中某些變量的某些條目缺少值。這些條目可以是空值、NaN(不是數(shù)字)或其他標(biāo)記。缺失值可能是由于數(shù)據(jù)輸入錯(cuò)誤、數(shù)據(jù)丟失或其他原因?qū)е碌?。在分析?shù)據(jù)集時(shí),缺失值可能會(huì)影響結(jié)果,因此需要對(duì)其進(jìn)行處理。在 Pandas 中,缺失數(shù)據(jù)由兩個(gè)值表示:None:None 通常用于 Python 代碼中的缺失數(shù)據(jù),NaN :NaN(Not a Number 的首字母縮寫(xiě)詞)。

2.如何在 Pandas 中識(shí)別缺失值

在 Pandas 中,我們可以使用 isnull() 或 notnull() 函數(shù)來(lái)識(shí)別缺失值。不同之處在于,isnull()函數(shù)發(fā)現(xiàn)數(shù)據(jù)中有空值或缺失值的時(shí)候返回True,notnull()返回的是False。 這些函數(shù)返回一個(gè)布爾數(shù)組,該數(shù)組指示每個(gè)元素是否為空值。例如,假設(shè)我們有一個(gè)數(shù)據(jù)框 df,我們可以使用以下代碼檢查缺失值。

import pandas as pd # 創(chuàng)建一個(gè)包含缺失值的數(shù)據(jù)框 df = pd.DataFrame({'A': [1, 2, None, 4, None], 'B': [5, None, 7, 8, None]}) # 檢查數(shù)據(jù)框中的缺失值 print(df.isnull()) df

輸出結(jié)果為,如下在第3行第1列和第2行第2列存在缺失值。

           A      B  0  False  False  1  False   True  2   True  False  3  False  False  4   True   True  Out[2]:       A    B  0  1.0  5.0  1  2.0  NaN  2  NaN  7.0  3  4.0  8.0

上述代碼將檢查 df 數(shù)據(jù)框中的缺失值,并返回一個(gè)布爾數(shù)組,該數(shù)組指示每個(gè)元素是否為空值。True 表示該元素是一個(gè)缺失值。

3.處理缺失值的常見(jiàn)方法

在處理缺失值時(shí),我們有許多方法可供選擇。下面是一些常見(jiàn)的方法,函數(shù)形式:dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

3.1刪除缺失值

刪除缺失值是處理缺失值的最簡(jiǎn)單方法之一。我們可以使用 dropna() 函數(shù)從數(shù)據(jù)框中刪除包含缺失值的行或列。例如,如果我們希望刪除包含任何缺失值的行,我們可以使用以下代碼,其中how默認(rèn)參數(shù)為'any'。

# 刪除包含任何缺失值的行 df.dropna()

刪除時(shí),有一個(gè)how參數(shù)介紹如下:

how:篩選方式。'any’,表示該行/列只要有一個(gè)以上的空值,就刪除該行/列;'all’,表示該行/列全部都為空值,就刪除該行/列。

我們可以使用以下代碼,其中參數(shù)all表示該行/列全部都為空值,就刪除該行/列。

    # 刪除的行和列必須都為空值  df.dropna(how='all')

如下所示,第一行代碼將所有存在空值的行刪除,而第二行代碼只是將最后一行全空的值刪除。

如果我們希望只要出現(xiàn)缺失值,就刪除所在的行,我們可以使用以下代碼,設(shè)置參數(shù)為'any’。

# 只要出現(xiàn)缺失值,就刪除 df.dropna(how='any')

如果我們希望刪除包含缺失值的列,我們可以使用以下代碼:

  # 刪除包含缺失值的列  df.dropna(axis=1)

如下所示,其中df是原始的值,運(yùn)行結(jié)果如下可對(duì)照結(jié)果進(jìn)行分析。

3.2替換缺失值

替換缺失值是處理缺失值的另一種常見(jiàn)方法。我們可以使用 fillna() 函數(shù)將缺失值替換為其他值。例如,如果我們希望將缺失值替換為 0,我們可以使用以下代碼:

# 將缺失值替換為 0 df.fillna(0)

我們還可以使用其他值來(lái)替換缺失值。例如,我們可以使用以下代碼將缺失值替換為每列的平均值:

  # 將缺失值替換為每列的平均值  df.fillna(df.mean())

兩處代碼的運(yùn)行結(jié)果如下所示,分別對(duì)應(yīng)原始值、缺失值替換。

3.3 插值缺失值

插值是一種更高級(jí)的缺失值處理方法。它可以使用現(xiàn)有數(shù)據(jù)來(lái)推斷缺失值。我們可以使用 interpolate() 函數(shù)在 Pandas 中進(jìn)行插值。例如,我們可以使用以下代碼在每列上進(jìn)行線性插值:

# 線性插值 df.fillna(df.interpolate())

4.Pandas 中處理缺失值的完整代碼示例

下面是完整的在 Pandas 中處理缺失值的代碼示例:

  import pandas as pd    # 創(chuàng)建一個(gè)包含缺失值的數(shù)據(jù)框  df = pd.DataFrame({'A': [1, 2, None, 4], 'B': [5, None, 7, 8]})    # 檢查數(shù)據(jù)框中的缺失值  print(df.isnull())    # 刪除包含任何缺失值的行  print(df.dropna())    # 刪除整行都是缺失值的行  print(df.dropna(how='all'))    # 刪除包含任何缺失值的行  df.dropna(how='any')    # 刪除包含缺失值的列  print(df.dropna(axis=1))    # 將缺失值替換為 0  print(df.fillna(0))    # 將缺失值替換為每列的平均值  print(df.fillna(df.mean()))    # 線性插值  print(df.interpolate())  print(df.fillna(df.interpolate()))

如上所示,我們先介紹了如何在 Pandas 中處理缺失值。我們討論了如何識(shí)別缺失值,并介紹了處理缺失值的常見(jiàn)方法。我們還提供了一些代碼示例,以便您可以在自己的項(xiàng)目中使用。處理缺失值是數(shù)據(jù)預(yù)處理的重要步驟,等下我們?cè)俳榻B一些高級(jí)的缺失值處理方法。

5.高級(jí)缺失值處理方法

除了前面提到的基本缺失值處理方法,還有一些高級(jí)缺失值處理方法,可以進(jìn)一步提高數(shù)據(jù)處理的精度。

5.1 多重插補(bǔ)

多重插補(bǔ)是一種使用現(xiàn)有數(shù)據(jù)集中其他相關(guān)變量的信息來(lái)推斷缺失值的方法。在 Pandas 中,我們可以使用 fancyimpute 庫(kù)來(lái)執(zhí)行多重插補(bǔ)。以下是一個(gè)示例,結(jié)果也如下所示。

from fancyimpute import IterativeImputer # 創(chuàng)建一個(gè)包含缺失值的數(shù)據(jù)框 df = pd.DataFrame({'A': [1, 2, None, 4,None], 'B': [5, None, 7, 8, None]}) # 使用多重插補(bǔ) imputer = IterativeImputer() imputed_df = imputer.fit_transform(df) imputed_df

5.2 高級(jí)回歸模型

對(duì)于更復(fù)雜的數(shù)據(jù)集,使用高級(jí)回歸模型可以進(jìn)一步提高缺失值處理的精度。例如,可以使用 XGBoost 或 LightGBM 等模型來(lái)處理缺失值。以下是一個(gè)使用 LightGBM 處理缺失值的示例:

  import lightgbm as lgb    # 創(chuàng)建一個(gè)包含缺失值的數(shù)據(jù)框  df = pd.DataFrame({'A': [1, 2, None, 4,None], 'B': [5, None, 7, 8, None]})    # 定義 LightGBM 模型  params = {      'objective': 'regression',      'metric': 'mse',      'num_leaves': 5,      'learning_rate': 0.05,      'feature_fraction': 0.5  }    # 使用 LightGBM 處理缺失值  dtrain = lgb.Dataset(df.drop('A', axis=1), label=df['A'].dropna())  gbm = lgb.train(params, dtrain)  df['A'] = gbm.predict(df.drop('A', axis=1))

當(dāng)然這個(gè)代碼我們還在調(diào)試中呀,可以自己復(fù)制運(yùn)行下~只有自己寫(xiě)了才會(huì)更加熟悉代碼呀。

結(jié)論

在數(shù)據(jù)處理中,處理缺失值是非常重要的。在 Pandas 中,我們可以使用多種方法來(lái)處理缺失值,包括刪除包含缺失值的行或列、替換缺失值和插值缺失值等基本方法。此外,我們還可以使用多重插補(bǔ)和高級(jí)回歸模型等高級(jí)方法來(lái)提高缺失值處理的精度。希望本文能夠幫助更好地處理缺失值,提高數(shù)據(jù)處理的效率和精度。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Pandas入門(mén)教程
pandas 處理缺失值[dropna、drop、fillna]
pandas中的缺失值處理
小白也能看懂的Pandas實(shí)操演示教程(下)
python小技能-缺失數(shù)據(jù)處理
關(guān)于在python中如何使用pandas庫(kù)讀取excel表格后 刪除含有空值的列
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服