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

python?sklearn與pandas實現(xiàn)缺失值數(shù)據(jù)預處理流程詳解

 更新時間:2022年09月26日 15:12:25   作者:talle2021  
對于缺失值的處理,主要配合使用sklearn.impute中的SimpleImputer類、pandas、numpy。其中由于pandas對于數(shù)據(jù)探索、分析和探查的支持較為良好,因此圍繞pandas的缺失值處理較為常用

注:代碼用 jupyter notebook跑的,分割線線上為代碼,分割線下為運行結果

1.導入庫生成缺失值

通過pandas生成一個6行4列的矩陣,列名分別為'col1','col2','col3','col4',同時增加兩個缺失值數(shù)據(jù)。

import  numpy as np 
import pandas as pd
from sklearn.impute import SimpleImputer
#生成缺失數(shù)據(jù)
df=pd.DataFrame(np.random.randn(6,4),columns=['col1','col2','col3','col4']) #生成一份數(shù)據(jù)
#增加缺失值
df.iloc[1:2,1]=np.nan
df.iloc[4,3]=np.nan
df

        col1        col2        col3        col4
0    -0.480144    1.463995    0.454819    -1.531419
1    -0.418552       NaN        -0.931259    -0.534846
2    -0.028083    -0.420394    0.925346    0.975792
3    -0.144064    -0.811569    -0.013452    0.110480
4    -0.966490    -0.822555    0.228038    NaN
5    -0.017370    -0.538245    -2.083904    0.230733

2.查看哪些值缺失(第2行第2列,第5行第4列)

nan_all=df.isnull() #獲得所有數(shù)據(jù)中的nan
nan_all

    col1    col2    col3    col4
0    False    False    False    False
1    False    True    False    False
2    False    False    False    False
3    False    False    False    False
4    False    False    False    True
5    False    False    False    False

3 any()方法來查找含有至少1個缺失值的列,all()方法來查找全部缺失值的列

#使用any方法
nan_col1=df.isnull().any() #獲得含有nan的列
print(nan_col1)

col1    False
col2     True
col3    False
col4     True
dtype: bool

#使用all方法
nan_col2=df.isnull().all() #獲得全部為nan的列
print(nan_col2)

col1    False
col2    False
col3    False
col4    False
dtype: bool

4.法一:直接丟棄缺失值

df1=df.dropna()#直接丟棄含有nan的行記錄
df1

col1    col2    col3    col4
0    -0.480144    1.463995    0.454819    -1.531419
2    -0.028083    -0.420394    0.925346    0.975792
3    -0.144064    -0.811569    -0.013452    0.110480
5    -0.017370    -0.538245    -2.083904    0.230733

5.法二:使用sklearn將缺失值替換為特定值

首先通過SimpleImputer創(chuàng)建一個預處理對象,缺失值替換方法默認用均值替換,及strategy=mean,還可以使用中位數(shù)median,眾數(shù)most_frequent進行替換,接著使用預處理對象的fit_transform對df進行處理,代碼如下:

#使用sklearn將缺失值替換為特定值
nan_mean=SimpleImputer(strategy='mean') #用均值填補
nan_median=SimpleImputer(strategy='median') #用中位數(shù)填補
nan_0=SimpleImputer(strategy='constant',fill_value=0) #用0填補
#應用模型
nan_mean_result=nan_mean.fit_transform(df)
nan_median_result=nan_median.fit_transform(df)
nan_0_result=nan_0.fit_transform(df)
print(nan_mean_result)
print(nan_median_result)
print(nan_0_result)

 [-0.48014389  1.46399462  0.45481856 -1.53141863]
 [-0.4185523  -0.22575384 -0.93125874 -0.53484561]
 [-0.02808329 -0.42039426  0.925346    0.97579191]
 [-0.14406438 -0.81156913 -0.0134516   0.11048025]
 [-0.96649028 -0.82255505  0.22803842 -0.14985173]
 [-0.01737047 -0.53824538 -2.0839036   0.23073341]
 
 [-0.48014389  1.46399462  0.45481856 -1.53141863]
 [-0.4185523  -0.53824538 -0.93125874 -0.53484561]
 [-0.02808329 -0.42039426  0.925346    0.97579191]
 [-0.14406438 -0.81156913 -0.0134516   0.11048025]
 [-0.96649028 -0.82255505  0.22803842  0.11048025]
 [-0.01737047 -0.53824538 -2.0839036   0.23073341]
 
 [-0.48014389  1.46399462  0.45481856 -1.53141863]
 [-0.4185523   0.         -0.93125874 -0.53484561]
 [-0.02808329 -0.42039426  0.925346    0.97579191]
 [-0.14406438 -0.81156913 -0.0134516   0.11048025]
 [-0.96649028 -0.82255505  0.22803842  0.        ]
 [-0.01737047 -0.53824538 -2.0839036   0.23073341]

6.法三:使用pandas將缺失值替換為特定值

pandas對缺失值處理方法是df.fillna(),該方法的兩個主要參數(shù)是value和method。前者通過固定或手動指定的值替換缺失值,后者使用pandas提供的方法替換缺失值。以下是method支持的方法:

(1)pad和ffill:使用前面的值替換缺失值

(2)backfill和bfill:使用后面的值替換缺失值

(3)大多數(shù)情況下用均值、眾數(shù)、中位數(shù)的方法較為常用

#使用pandas將缺失值替換為特定值
nan_result_pd1=df.fillna(method='backfill')
nan_result_pd2=df.fillna(method='bfill',limit=1)#用后面的值替換缺失值,限制每列只能替換一個缺失值
nan_result_pd3=df.fillna(method='pad')
nan_result_pd4=df.fillna(0)
nan_result_pd5=df.fillna({'col2':1.1,'col4':1.2}) #手動指定兩個缺失值分別為1.1,1.2
nan_result_pd6=df.fillna(df.mean()['col2':'col4'])
nan_result_pd7=df.fillna(df.median()['col2':'col4'])
print(nan_result_pd1)
print(nan_result_pd2)
print(nan_result_pd3)
print(nan_result_pd4)
print(nan_result_pd5)
print(nan_result_pd6)
print(nan_result_pd7)

  col1      col2      col3      col4
0 -0.480144  1.463995  0.454819 -1.531419
1 -0.418552 -0.420394 -0.931259 -0.534846
2 -0.028083 -0.420394  0.925346  0.975792
3 -0.144064 -0.811569 -0.013452  0.110480
4 -0.966490 -0.822555  0.228038  0.230733
5 -0.017370 -0.538245 -2.083904  0.230733
       col1      col2      col3      col4
0 -0.480144  1.463995  0.454819 -1.531419
1 -0.418552 -0.420394 -0.931259 -0.534846
2 -0.028083 -0.420394  0.925346  0.975792
3 -0.144064 -0.811569 -0.013452  0.110480
4 -0.966490 -0.822555  0.228038  0.230733
5 -0.017370 -0.538245 -2.083904  0.230733
       col1      col2      col3      col4
0 -0.480144  1.463995  0.454819 -1.531419
1 -0.418552  1.463995 -0.931259 -0.534846
2 -0.028083 -0.420394  0.925346  0.975792
3 -0.144064 -0.811569 -0.013452  0.110480
4 -0.966490 -0.822555  0.228038  0.110480
5 -0.017370 -0.538245 -2.083904  0.230733
       col1      col2      col3      col4
0 -0.480144  1.463995  0.454819 -1.531419
1 -0.418552  0.000000 -0.931259 -0.534846
2 -0.028083 -0.420394  0.925346  0.975792
3 -0.144064 -0.811569 -0.013452  0.110480
4 -0.966490 -0.822555  0.228038  0.000000
5 -0.017370 -0.538245 -2.083904  0.230733
       col1      col2      col3      col4
0 -0.480144  1.463995  0.454819 -1.531419
1 -0.418552  1.100000 -0.931259 -0.534846
2 -0.028083 -0.420394  0.925346  0.975792
3 -0.144064 -0.811569 -0.013452  0.110480
4 -0.966490 -0.822555  0.228038  1.200000
5 -0.017370 -0.538245 -2.083904  0.230733
       col1      col2      col3      col4
0 -0.480144  1.463995  0.454819 -1.531419
1 -0.418552 -0.225754 -0.931259 -0.534846
2 -0.028083 -0.420394  0.925346  0.975792
3 -0.144064 -0.811569 -0.013452  0.110480
4 -0.966490 -0.822555  0.228038 -0.149852
5 -0.017370 -0.538245 -2.083904  0.230733
       col1      col2      col3      col4
0 -0.480144  1.463995  0.454819 -1.531419
1 -0.418552 -0.538245 -0.931259 -0.534846
2 -0.028083 -0.420394  0.925346  0.975792
3 -0.144064 -0.811569 -0.013452  0.110480
4 -0.966490 -0.822555  0.228038  0.110480
5 -0.017370 -0.538245 -2.083904  0.230733

另外,如果是直接替換為特定值,也可以考慮用pandas的replace功能,例如本示例可直接使用df.replace(np.nan,0),這種方法簡單粗暴,但也能達到效果。當然replace的出現(xiàn)是為了解決各種替換用的,缺失值只是其中一種應用而已。

到此這篇關于python sklearn與pandas實現(xiàn)缺失值數(shù)據(jù)預處理流程詳解的文章就介紹到這了,更多相關python 數(shù)據(jù)預處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Anaconda安裝opencv庫詳細圖文教程

    Anaconda安裝opencv庫詳細圖文教程

    這篇文章主要給大家介紹了關于Anaconda安裝opencv庫詳細圖文教程的相關資料,安裝Anaconda后,你可以使用conda命令在Anaconda環(huán)境中安裝OpenCV,文中有詳細步驟,需要的朋友可以參考下
    2023-07-07
  • 詳解Django配置優(yōu)化方法

    詳解Django配置優(yōu)化方法

    這篇文章主要介紹了詳解Django配置優(yōu)化方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • Python中常見內(nèi)置函數(shù)的用法合集

    Python中常見內(nèi)置函數(shù)的用法合集

    本文將從基礎到高級,詳細介紹Python中常見的內(nèi)置函數(shù),通過代碼示例和中文注釋,幫助您深入理解如何在不同情景下靈活應用這些函數(shù),需要的可以學習一下
    2023-09-09
  • Pandas之read_csv()讀取文件跳過報錯行的解決

    Pandas之read_csv()讀取文件跳過報錯行的解決

    這篇文章主要介紹了Pandas之read_csv()讀取文件跳過報錯行的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python連接mysql數(shù)據(jù)庫示例(做增刪改操作)

    python連接mysql數(shù)據(jù)庫示例(做增刪改操作)

    python連接mysql數(shù)據(jù)庫示例,提供創(chuàng)建表,刪除表,數(shù)據(jù)增、刪、改,批量插入操作,大家參考使用吧
    2013-12-12
  • Python調用騰訊云短信服務發(fā)送手機短信

    Python調用騰訊云短信服務發(fā)送手機短信

    這篇文章主要為大家介紹了Python調用騰訊云短信服務發(fā)送手機短信,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • 解決安裝python庫時windows error5 報錯的問題

    解決安裝python庫時windows error5 報錯的問題

    今天小編就為大家分享一篇解決安裝python庫時windows error5 報錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • pandas 對group進行聚合的例子

    pandas 對group進行聚合的例子

    今天小編就為大家分享一篇pandas 對group進行聚合的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python+opencv實現(xiàn)視頻抽幀示例代碼

    python+opencv實現(xiàn)視頻抽幀示例代碼

    下面是采用以幀數(shù)為間隔的方法進行視頻抽幀,為了避免不符合項目要求的數(shù)據(jù)增強,博主要求技術人員在錄制視頻時最大程度地讓攝像頭進行移動、旋轉以及遠近調節(jié)等,對python opencv視頻抽幀示例代碼感興趣的朋友一起看看吧
    2021-06-06
  • Django代碼性能優(yōu)化與Pycharm Profile使用詳解

    Django代碼性能優(yōu)化與Pycharm Profile使用詳解

    本文通過一個簡單的實例一步一步引導讀者對其進行全方位的性能優(yōu)化,這篇文章主要給大家介紹了關于Django代碼性能優(yōu)化與Pycharm Profile使用的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-08-08

最新評論

怀化市| 西昌市| 柘荣县| 吉木萨尔县| 凭祥市| 古丈县| 阿尔山市| 益阳市| 渭南市| 奉节县| 鄂尔多斯市| 灯塔市| 阜新| 波密县| 新泰市| 合水县| 峡江县| 井冈山市| 边坝县| 开化县| 噶尔县| 饶阳县| 贵港市| 邢台市| 晋城| 光山县| 南阳市| 筠连县| 平凉市| 许昌市| 洞口县| 比如县| 改则县| 广昌县| 常山县| 射洪县| 翁源县| 乌兰察布市| 阳江市| 望江县| 西城区|