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

pandas中數(shù)據(jù)缺失值的檢測,統(tǒng)計(jì)與處理教學(xué)

 更新時(shí)間:2026年04月16日 09:11:15   作者:一位代碼  
數(shù)據(jù)缺失指的是數(shù)據(jù)中的某個(gè)或某些特征不完整,即由于各種原因?qū)е聰?shù)據(jù)記錄中某些列的值空缺,本文整理了pandas?中常見的數(shù)據(jù)缺失值的檢測、統(tǒng)計(jì)與處理方法,希望對大家有所幫助

前言

數(shù)據(jù)缺失:指的是數(shù)據(jù)中的某個(gè)或某些特征不完整,即由于各種原因?qū)е聰?shù)據(jù)記錄中某些列的值空缺。

不同的數(shù)據(jù)存儲(chǔ)或環(huán)境對于缺失值的表現(xiàn)結(jié)果不同,例如,數(shù)據(jù)庫中為 Null,python 返回 None,pandas 或 Numpy 則是 NaN。

缺失值也不同于空字符串,空字符串是有實(shí)體的,為字符串類型;而缺失值是沒有實(shí)體的,沒有數(shù)據(jù)類型。

pandas 中常見的數(shù)據(jù)缺失值的檢測、統(tǒng)計(jì)與處理方法,如下。

一、缺失值的檢測與統(tǒng)計(jì)

定量:了解數(shù)據(jù)中那些字段有缺失,缺失比例如何。

pandas 提供識別缺失值的方法 isnull、識別非缺失值的方法 notnull ,返回值為布爾值(False或True)。以下面讀取數(shù)據(jù)的結(jié)果為示例:

import pandas as pd

df =pd.read_excel('sass.xlsx') # 讀取數(shù)據(jù)
print(df)

缺失值的檢測與統(tǒng)計(jì)

查看每列是否有缺失值

df.isnull.any():True 表示有缺失,F(xiàn)alse 表示沒有缺失。

print('每列是否存在缺失值:\n', df.isnull().any()) # True表示有缺失,F(xiàn)alse表示無缺失

查看每列是否有缺失值

顯示數(shù)據(jù)缺失情況、位置

df.isnull():True 表示有缺失,F(xiàn)alse 表示沒有缺失。

print('數(shù)據(jù)缺失值查看:\n', df.isnull())  # True表示缺失,F(xiàn)alse表示未缺失

顯示數(shù)據(jù)缺失情況、位置

統(tǒng)計(jì)每列缺失值個(gè)數(shù)

sum() 函數(shù)結(jié)合 isnull、notnull,可查看數(shù)據(jù)中缺失值的分布以及數(shù)據(jù)中一共有多少個(gè)缺失值。

print('每列數(shù)據(jù)缺失的個(gè)數(shù):\n', df.isnull().sum())

統(tǒng)計(jì)每列缺失值個(gè)數(shù)

注:notnull 用法一樣,只是代表意思相反,表示未缺失值情況。

二、缺失值的處理

直接刪除缺失值(刪除法)

這種方法簡單明了,直接刪除帶有缺失值的行記錄(整行刪除)或者列字段(整列刪除),但是這種方法會(huì)消減數(shù)據(jù)特征,在很多情況下是不科學(xué)的,需要根據(jù)具體情況來考慮是否刪除。

pandas 提供了 dropna 方法來刪除缺失值,語法:

DataFrame.dropna(self,axis=0,how='any',thresh=None,subset=None,inplace=False)
參數(shù)釋義
axis接收0或1,表示軸向,0表示行,1表示列。默認(rèn)為0
how接收特定string,表示刪除形式。取值為“any”,表示只要有缺失值就執(zhí)行刪除操作,取值為“all”,表示當(dāng)且僅當(dāng)全部為缺失值時(shí)才執(zhí)行刪除操作。默認(rèn)為“any”
subset接收array,表示根據(jù)去重的行/列條件。默認(rèn)為None,所有行/列
inplace接收布爾值,代表操作是否對原數(shù)據(jù)生效,默認(rèn)為False

以原始數(shù)據(jù)(df1)為例:

直接刪除缺失值(刪除法)

實(shí)例1:刪除存在缺失值(NaN)的所有列

df2 =df1.dropna(axis=1)
print('刪除存在缺失值的所有列后:\n', df2)

直接刪除缺失值(刪除法)

實(shí)例2:刪除特定字段存在缺失值(NaN)的行。

如:刪除'Protein'或 'CHO'字段存在缺失值(NaN)的行。

df3 = df1.dropna(subset=['Protein', 'CHO'])
print('刪除特定字段為空的行:\n', df3)

直接刪除缺失值(刪除法)

替換補(bǔ)齊缺失值

相對于直接刪除法而言,補(bǔ)齊是更加常用的缺失值處理方法。

如果缺失值所在特征(列)為數(shù)值型,通常利用均值、中位數(shù)、眾數(shù)等描述其集中趨勢的統(tǒng)計(jì)量來替換補(bǔ)齊缺失值;

如果缺失值所在特征(列)為類別型,選擇使用類別眾數(shù)來替換補(bǔ)齊。

當(dāng)然根據(jù)實(shí)際情況,可選擇隨機(jī)法、特殊值法、模型法等來替換補(bǔ)齊。

Pandas 提供了缺失值替換的方法 fillna,語法:

DataFrame.fillna(value=None,method=None,axis=1,inplace=False,limit=None)
參數(shù)釋義
value接收dict、DataFrame等類型數(shù)據(jù),表示用來替換缺失值的值。無默認(rèn)值
method接收特定string:(1)取值為“backfill”或“bfill”,表示使用下一個(gè)非缺失值來填補(bǔ)缺失值。(2)取值為“pad”或“ffill”,表示使用上一個(gè)非缺失值來填補(bǔ)缺失值。默認(rèn)為None
axis接收0或1,表示軸向。默認(rèn)為1
inplace接收布爾值,代表操作是否對原數(shù)據(jù)生效,默認(rèn)為False
limit接收int,表示填補(bǔ)缺失值個(gè)數(shù)上限,超過則不進(jìn)行填補(bǔ)。默認(rèn)為None

以上面數(shù)據(jù)(df1)為例,將所有缺失值(NaN)填充為0:

df4 = df1.fillna(value=0)
print('將所有缺失值填充為0:\n', df4)

替換補(bǔ)齊缺失值

注:根據(jù)實(shí)際需要,為缺失數(shù)據(jù)填充合理的值,方便后面數(shù)據(jù)的分析與建模,這里全部填充為0,只是作為一個(gè)方法舉例。

以上就是pandas中數(shù)據(jù)缺失值的檢測,統(tǒng)計(jì)與處理教學(xué)的詳細(xì)內(nèi)容,更多關(guān)于pandas數(shù)據(jù)缺失值處理的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

上饶市| 偃师市| 穆棱市| 新巴尔虎左旗| 嵊泗县| 西峡县| 康马县| 抚宁县| 监利县| 南安市| 澳门| 淮滨县| 徐闻县| 永和县| 长葛市| 大洼县| 沙湾县| 增城市| 芒康县| 牡丹江市| 鹤壁市| 耿马| 巴南区| 新宾| 元江| 呼图壁县| 法库县| 岢岚县| 衡阳市| 贡觉县| 资源县| 康定县| 邵阳县| 五台县| 广河县| 贵南县| 深州市| 滦南县| 宕昌县| 彰武县| 鸡泽县|