Python?數(shù)據(jù)清洗刪除缺失值替換缺失值詳情
一、缺失數(shù)據(jù)剔除
1. python 方式
獲取所有的缺失值,返回一個 true 和 false 的表
df.isnull()
統(tǒng)計缺失值,按照每一列統(tǒng)計
df.isnull().sum()
統(tǒng)計缺失值 按行
df.isnull().sum(axis='columns')
查看列 是否全部缺失
df.isnull().all()
剔除 植物園
這一列 2種方式
df1 = df.drop(columns='植物園') df1 = df.drop('植物園', axis=1)
通過數(shù)據(jù)索引的方式來剔除掉缺測數(shù)據(jù)。
列:
df1 = df.loc[:, ~(df.isnull().all())]
刪除所有 有缺失的行
df1[~(df1.isnull().any('columns'))]
這種方式看起來明顯比drop()的方式要復雜一點,那么是不是意味著我們就學drop()就行了,不用再去記住索引方式。
當然不是!drop()看起來簡單只是因為剛好只有一列需要剔除,加入我們需要剔除很多數(shù)據(jù),那使用drop()就不足以完成任務,還是要配合索引的方式。
下面我們來看一下剔除行里的缺測值,上面的數(shù)據(jù)有很多行都有缺測值,如果在drop函數(shù)中一個一個填是很不現(xiàn)實的,那么我們看一下合理的解決方案應該是什么樣的。
2. DataFrame 方式
剔除列的缺失值
df.dropna(axis='columns', how='all', inplace=True)
剔除行的缺失值
df.dropna(axis='index', how='any', inplace=True)
二、缺失值補全
用前一行的數(shù)據(jù)填充
df.fillna(method='bfill')
用后一行的數(shù)據(jù)填充
df.fillna(method='bfill')
三、重復值剔除(按照行和列)
返回的是 True 和 False 的 列表
df.duplicated()
剔除重復行
df.drop_duplicates()
返回的是 True 和 False 的 列表
df.duplicated(subset=['天壇'], keep=False)
剔除 天壇 這列里面的所有重復值
df.drop_duplicates(subset=['天壇'], keep=False)
四、數(shù)值轉換
1. replace
單值轉換,將Nan 替換成 -9999
df.replace(np.nan, -9999)
多值轉化,將想替換的元素放在一個 [ ] 里就行
df.replace([np.nan, 0], -9999)
2. apply
replace可以進行簡單的數(shù)據(jù)替換,但如果想進行更為復雜的操作replace是無法完成的。
然而對DataFrame而言,apply是非常重要的數(shù)據(jù)處理方法,它可以接收各種各樣的函數(shù)(Python內(nèi)置的或自定義的),處理方式很靈活,完成各種復雜的需求。他的實際作用是將函數(shù)作為一個對象,通過apply的調(diào)用對DataFrame里的數(shù)組元素應用這個函數(shù)。
只關注和設置這個規(guī)則,循環(huán)這種事情交給編程語言去處理
def aqi_level(aqi): if aqi>0 and aqi<=50: level = '優(yōu)' elif aqi>50 and aqi<=100: level = '良' elif aqi>100 and aqi<=150: level = '輕度污染' elif aqi>150 and aqi<=200: level = '中度污染' elif aqi>200 and aqi<=300: level = '重度污染' else: level = '嚴重污染' return level # 數(shù)據(jù)預處理一下 將所有的類型都轉為 AQI aqi = df[df['type']=='AQI'] aqi['東四'].apply(aqi_level)
3.applymap
apply()可以實現(xiàn)對某一行或某一列的函數(shù)應用,如果想對DataFrame中的全部數(shù)值都使用這個函數(shù)來進行轉化我們就需要用到applymap()
#~aqi.columns.isin(['date', 'hour', 'type']) 取非這三列的所有列
aqi.loc[:, ~aqi.columns.isin(['date', 'hour', 'type'])].apply(np.mean, axis=0) aqi.loc[:, ~aqi.columns.isin(['date', 'hour', 'type'])].applymap(aqi_level)
到此這篇關于Python 數(shù)據(jù)清洗刪除缺失值替換缺失值詳情的文章就介紹到這了,更多相關Python數(shù)據(jù)清洗 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- 使用python數(shù)據(jù)清洗代碼實例
- 用Python進行數(shù)據(jù)清洗以及值處理
- Python常用的數(shù)據(jù)清洗方法詳解
- 一文帶你深入了解Python中的數(shù)據(jù)清洗
- 三個Python常用的數(shù)據(jù)清洗處理方式總結
- python?文件讀寫和數(shù)據(jù)清洗
- Python實現(xiàn)數(shù)據(jù)清洗的示例詳解
- 詳解Python中的數(shù)據(jù)清洗工具flashtext
- 利用Python進行數(shù)據(jù)清洗的操作指南
- Python?八個數(shù)據(jù)清洗實例代碼詳解
- 如何使用Python數(shù)據(jù)清洗庫
相關文章
MNIST數(shù)據(jù)集轉化為二維圖片的實現(xiàn)示例
這篇文章主要介紹了MNIST數(shù)據(jù)集轉化為二維圖片的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-01-01如何將yolo格式轉化為voc格式:txt轉xml(親測有效)
這篇文章主要介紹了如何將yolo格式轉化為voc格式:txt轉xml,親測有效,可以使用,本文通過圖文并茂的形式給大家介紹的非常詳細,感興趣的朋友參考下吧2023-12-12python實現(xiàn)爬蟲統(tǒng)計學校BBS男女比例之數(shù)據(jù)處理(三)
這篇文章主要介紹了python實現(xiàn)爬蟲統(tǒng)計學校BBS男女比例之數(shù)據(jù)處理,需要的朋友可以參考下2015-12-12Python使用psutil對系統(tǒng)數(shù)據(jù)進行采集監(jiān)控
psutil庫可以實時獲取系統(tǒng)的一些信息,這樣就可以達到實時監(jiān)控系統(tǒng)的目的。本文對詳細講解了ython使用psutil對系統(tǒng)數(shù)據(jù)進行采集監(jiān)控,感興趣的朋友可以看一看2021-08-08