pandas的空數(shù)據(jù)處理方式
pandas空數(shù)據(jù)處理
數(shù)據(jù)清洗是對(duì)一些沒有用的數(shù)據(jù)進(jìn)行處理的過程。
很多數(shù)據(jù)集存在數(shù)據(jù)缺失、數(shù)據(jù)格式錯(cuò)誤、錯(cuò)誤數(shù)據(jù)或重復(fù)數(shù)據(jù)的情況,如果要使數(shù)據(jù)分析更加準(zhǔn)確,就需要對(duì)這些沒有用的數(shù)據(jù)進(jìn)行處理。
數(shù)據(jù)準(zhǔn)備
import pandas as pd data = pd.read_csv(r'../input/pandas/property-data.csv') data

1、判斷空值 .isna()
data.isna()

對(duì)比可以看出:Pandas 把 NaN 當(dāng)作空數(shù)據(jù),na 和 – 不是空數(shù)據(jù)

我們可以在讀取數(shù)據(jù)的時(shí)候,指定哪些屬于空數(shù)據(jù)
data = pd.read_csv('../input/pandas/property-data.csv', na_values = ["NaN", "na", "--"])
data.isna()

# 統(tǒng)計(jì)每個(gè)特征的空值的數(shù)量,再按照空值數(shù)量降序排列 data.isna().sum().sort_values(ascending=False)

2、空值刪除 .dropna()
如果我們要?jiǎng)h除包含空字段的行,可以使用 dropna() 方法,語法格式如下
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
參數(shù)說明:
axis:默認(rèn)為 0,表示逢空值剔除整行,如果設(shè)置參數(shù) axis=1 表示逢空值去掉整列。how:默認(rèn)為 ‘any’ ,如果一行(或一列)里任何一個(gè)數(shù)據(jù)有出現(xiàn) NA 就去掉整行,如果設(shè)置 how=‘all’ , 一行(或列)都是 NA 才去掉這整行。thresh:設(shè)置需要多少非空值的數(shù)據(jù)才可以保留下來的。subset:設(shè)置想要檢查的列。如果是多個(gè)列,可以使用列名的 list 作為參數(shù)。inplace:如果設(shè)置 True,將計(jì)算得到的值直接覆蓋之前的值并返回 None,修改的是源數(shù)據(jù)。
假設(shè)我們要?jiǎng)h掉 ‘ST_NUM’ 和 ‘NUM_BEDROOMS’ 中有空值的行, 并且直接在原數(shù)據(jù)里面刪 ( inplace=True )
data.dropna(subset=['ST_NUM', 'NUM_BEDROOMS'], inplace=True) data

3、空值替換 .dropna()
data['NUM_BEDROOMS'].fillna('0.0', inplace = True)
data

除了直接指定常數(shù)替換,常用的替換空單元格的方法是計(jì)算列的均值(mean:所有值加起來的平均值)、中位數(shù)值(median 排序后排在中間的數(shù))或眾數(shù)(mode 出現(xiàn)頻率最高的數(shù))。
1) 用平均值填充
x = data["ST_NUM"].mean() data["ST_NUM"].fillna(x, inplace = True) data

2) 用中位數(shù)填充
```python x = data["ST_NUM"].median() data["ST_NUM"].fillna(x, inplace = True) data

3) 用眾數(shù)填充
x = data["ST_NUM"].mode() data["ST_NUM"].fillna(x, inplace = True) data

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)批量提取Word文檔表格數(shù)據(jù)
在大數(shù)據(jù)處理與信息抽取領(lǐng)域中,Word文檔是各類機(jī)構(gòu)和個(gè)人普遍采用的一種信息存儲(chǔ)格式,本文將介紹如何使用Python實(shí)現(xiàn)對(duì)Word文檔中表格的提取,感興趣的可以了解下2024-03-03
將python flask項(xiàng)目打包成可以運(yùn)行的軟件的全過程(包含報(bào)錯(cuò)解決)
這篇文章主要給大家介紹了將python flask項(xiàng)目打包成可以用運(yùn)行的軟件(包含報(bào)錯(cuò)解決),文中通過代碼示例和圖文結(jié)合講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-02-02
python中的tkinter庫彈窗messagebox詳解
這篇文章主要介紹了python中的tkinter庫彈窗messagebox,包括消息提示框、消息警告框、錯(cuò)誤消息框,通過代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-06-06
基于python神經(jīng)卷積網(wǎng)絡(luò)的人臉識(shí)別
這篇文章主要為大家詳細(xì)介紹了基于python神經(jīng)卷積網(wǎng)絡(luò)的人臉識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
python?selenium參數(shù)詳解和實(shí)現(xiàn)案例
這篇文章主要介紹了python?selenium參數(shù)詳解和實(shí)現(xiàn)案例,無頭模式添加,可以讓selenium模擬登錄,進(jìn)入到后臺(tái)運(yùn)行,本文以登錄打開公司內(nèi)網(wǎng)下載數(shù)據(jù)為例,給大家詳細(xì)講解,需要的朋友可以參考下2022-10-10
Python網(wǎng)絡(luò)編程之HTTP協(xié)議的python應(yīng)用
HTTP是在網(wǎng)絡(luò)上傳輸HTML的協(xié)議,用于瀏覽器和服務(wù)器的通信,這篇文章主要介紹了Python網(wǎng)絡(luò)編程之HTTP協(xié)議的python應(yīng)用,需要的朋友可以參考下2022-11-11
python進(jìn)行數(shù)據(jù)合并concat/merge
這篇文章主要介紹了python進(jìn)行數(shù)據(jù)合并concat/merge,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-09-09

