欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python3常用的數(shù)據(jù)清洗方法(小結(jié))

 更新時間:2019年10月31日 14:48:44   作者:竹子萊西  
這篇文章主要介紹了python3常用的數(shù)據(jù)清洗方法(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

首先載入各種包:

import pandas as pd
import numpy as np
from collections import Counter
from sklearn import preprocessing
from matplotlib import pyplot as plt
%matplotlib inline
import seaborn as sns 
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文字體設置-黑體
plt.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負號'-'顯示為方塊的問題
sns.set(font='SimHei') # 解決Seaborn中文顯示問題

讀入數(shù)據(jù):這里數(shù)據(jù)是編造的

data=pd.read_excel('dummy.xlsx')

本案例的真實數(shù)據(jù)是這樣的:

這里寫圖片描述 

對數(shù)據(jù)進行多方位的查看:

實際情況中可能會有很多行,一般用head()看數(shù)據(jù)基本情況

data.head() #查看長啥樣
data.shape #查看數(shù)據(jù)的行列大小
data.describe()

這里寫圖片描述

這里寫圖片描述

#列級別的判斷,但凡某一列有null值或空的,則為真
data.isnull().any()

#將列中為空或者null的個數(shù)統(tǒng)計出來,并將缺失值最多的排前
total = data.isnull().sum().sort_values(ascending=False)
print(total)


#輸出百分比:
percent =(data.isnull().sum()/data.isnull().count()).sort_values(ascending=False)
missing_data = pd.concat([total, percent], axis=1, keys=['Total', 'Percent'])
missing_data.head(20)

這里寫圖片描述

也可以從視覺上直觀查看缺失值:

import missingno
missingno.matrix(data)
data=data.dropna(thresh=data.shape[0]*0.5,axis=1) #至少有一半以上是非空的列篩選出來
#如果某一行全部都是na才刪除:
data.dropna(axis=0,how='all') 

這里寫圖片描述

#默認情況下是只保留沒有空值的行
data=data.dropna(axis=0) 

這里寫圖片描述

#統(tǒng)計重復記錄數(shù)
data.duplicated().sum()
data.drop_duplicates()

對連續(xù)型數(shù)據(jù)和離散型數(shù)據(jù)分開處理:

data.columns
#第一步,將整個data的連續(xù)型字段和離散型字段進行歸類
id_col=['姓名']
cat_col=['學歷','學校'] #這里是離散型無序,如果有序,請參考map用法,一些博客上有寫
cont_col=['成績','能力'] #這里是數(shù)值型
print (data[cat_col]) #這里是離散型的數(shù)據(jù)部分
print (data[cont_col])#這里是連續(xù)性數(shù)據(jù)部分

對于離散型部分:

#計算出現(xiàn)的頻次
for i in cat_col:
  print (pd.Series(data[i]).value_counts())
  plt.plot(data[i])

這里寫圖片描述

#對于離散型數(shù)據(jù),對其獲取啞變量
dummies=pd.get_dummies(data[cat_col])
dummies

這里寫圖片描述 

對于連續(xù)型部分:

#對于連續(xù)型數(shù)據(jù)的大概統(tǒng)計:
data[cont_col].describe()

#對于連續(xù)型數(shù)據(jù),看偏度,一般大于0.75的數(shù)值做一個log轉(zhuǎn)化,使之盡量符合正態(tài)分布,因為很多模型的假設數(shù)據(jù)是服從正態(tài)分布的
skewed_feats = data[cont_col].apply(lambda x: (x.dropna()).skew() )#compute skewness
skewed_feats = skewed_feats[skewed_feats > 0.75]
skewed_feats = skewed_feats.index
data[skewed_feats] = np.log1p(data[skewed_feats])
skewed_feats
#對于連續(xù)型數(shù)據(jù),對其進行標準化
scaled=preprocessing.scale(data[cont_col])
scaled=pd.DataFrame(scaled,columns=cont_col)
scaled

這里寫圖片描述

m=dummies.join(scaled)
data_cleaned=data[id_col].join(m)
data_cleaned

這里寫圖片描述 

看變量之間的相關性:

data_cleaned.corr()

這里寫圖片描述

#以下是相關性的熱力圖,方便肉眼看
def corr_heat(df):
  dfData = abs(df.corr())
  plt.subplots(figsize=(9, 9)) # 設置畫面大小
  sns.heatmap(dfData, annot=True, vmax=1, square=True, cmap="Blues")
  # plt.savefig('./BluesStateRelation.png')
  plt.show()
corr_heat(data_cleaned)

這里寫圖片描述

如果有覺得相關性偏高的視情況刪減某些變量。

#取出與某個變量(這里指能力)相關性最大的前四個,做出熱點圖表示
k = 4 #number of variables for heatmap
cols = corrmat.nlargest(k, '能力')['能力'].index
cm = np.corrcoef(data_cleaned[cols].values.T)
sns.set(font_scale=1.25)
hm = sns.heatmap(cm, cbar=True, annot=True, square=True, fmt='.2f',   annot_kws={'size': 10}, yticklabels=cols.values,  xticklabels=cols.values)
plt.show()

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Python判斷telnet通不通的實例

    Python判斷telnet通不通的實例

    今天小編就為大家分享一篇Python判斷telnet通不通的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python使用正則表達式的search()函數(shù)實現(xiàn)指定位置搜索功能

    python使用正則表達式的search()函數(shù)實現(xiàn)指定位置搜索功能

    SEARCH函數(shù),函數(shù)名。主要用來返回指定的字符串在原始字符串中首次出現(xiàn)的位置 ,從左到右查找,忽略英文字母的大小寫。接下來通過本文給大家介紹python使用正則表達式的search()函數(shù)實現(xiàn)指定位置搜索功能,需要的朋友一起看看吧
    2017-11-11
  • 導致python中import錯誤的原因是什么

    導致python中import錯誤的原因是什么

    在本篇文章里小編給大家整理了關于python的import錯誤原因以及相關內(nèi)容,需要的朋友們可以學習下。
    2020-07-07
  • keras多顯卡訓練方式

    keras多顯卡訓練方式

    這篇文章主要介紹了keras多顯卡訓練方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 從零開始搭建基于Python的微信小程序的教程分享

    從零開始搭建基于Python的微信小程序的教程分享

    這篇文章主要為大家展示了如何從零開始搭建一個基于?Python?的微信小程序項目,包含詳細的解決思路、方案和實際案例,希望對大家有所幫助
    2023-05-05
  • 使用Python的Flask框架構建大型Web應用程序的結(jié)構示例

    使用Python的Flask框架構建大型Web應用程序的結(jié)構示例

    雖說Flask是一個以輕量級著稱的框架,但也為大型Web應用提供了諸如單元測試與數(shù)據(jù)庫遷移等許多便利的功能,這里我們來看一下使用Python的Flask框架構建大型Web應用程序的結(jié)構示例:
    2016-06-06
  • Python csv模塊使用方法代碼實例

    Python csv模塊使用方法代碼實例

    這篇文章主要介紹了Python csv模塊使用方法代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Python時間獲取及轉(zhuǎn)換知識匯總

    Python時間獲取及轉(zhuǎn)換知識匯總

    這篇文章主要介紹了Python時間獲取及轉(zhuǎn)換知識匯總的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-01-01
  • pytorch下tensorboard的使用程序示例

    pytorch下tensorboard的使用程序示例

    我們都知道tensorflow框架可以使用tensorboard這一高級的可視化的工具,這篇文章主要介紹了pytorch下tensorboard的使用,需要的朋友可以參考下
    2021-10-10
  • Python繪圖系統(tǒng)之繪制散點圖,極坐標和子圖

    Python繪圖系統(tǒng)之繪制散點圖,極坐標和子圖

    這篇文章主要為大家詳細介紹了如何基于Python實現(xiàn)一個繪圖系統(tǒng),可以支持繪制散點圖,極坐標和子圖,文中的示例代碼講解詳細,感興趣的可以了解下
    2023-09-09

最新評論