pandas的空數(shù)據(jù)處理方式
pandas空數(shù)據(jù)處理
數(shù)據(jù)清洗是對(duì)一些沒(méi)有用的數(shù)據(jù)進(jìn)行處理的過(guò)程。
很多數(shù)據(jù)集存在數(shù)據(jù)缺失、數(shù)據(jù)格式錯(cuò)誤、錯(cuò)誤數(shù)據(jù)或重復(fù)數(shù)據(jù)的情況,如果要使數(shù)據(jù)分析更加準(zhǔn)確,就需要對(duì)這些沒(méi)有用的數(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() 方法,語(yǔ)法格式如下
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
參數(shù)說(shuō)明:
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ù)才可以保留下來(lái)的。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:所有值加起來(lái)的平均值)、中位數(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爬蟲(chóng)框架scrapy實(shí)現(xiàn)的文件下載功能示例
這篇文章主要介紹了Python爬蟲(chóng)框架scrapy實(shí)現(xiàn)的文件下載功能,結(jié)合實(shí)例形式分析了scrapy框架進(jìn)行文件下載的具體操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-08-08Python機(jī)器學(xué)習(xí)從ResNet到DenseNet示例詳解
ResNet極大地改變了如何參數(shù)化深層網(wǎng)絡(luò)中函數(shù)的觀點(diǎn)。稠密連接網(wǎng)絡(luò)(DenseNet)在某種程度上是ResNet的邏輯擴(kuò)展。讓我們先從數(shù)學(xué)上了解下2021-10-10六個(gè)Python編程最受用的內(nèi)置函數(shù)使用詳解
在日常的python編程中使用這幾個(gè)函數(shù)來(lái)簡(jiǎn)化我們的編程工作,經(jīng)常使用能使編程效率大大地提高。本文為大家總結(jié)了六個(gè)Python編程最受用的內(nèi)置函數(shù),感興趣的可以了解一下2022-07-07Python?Watchdog實(shí)現(xiàn)實(shí)時(shí)監(jiān)控文件系統(tǒng)
Python?Watchdog是一個(gè)優(yōu)秀的第三方庫(kù),用于實(shí)現(xiàn)高效的文件系統(tǒng)監(jiān)控,本文將為大家詳細(xì)介紹一下Python如何使用Watchdog實(shí)現(xiàn)實(shí)時(shí)監(jiān)控文件,需要的可以參考下2023-11-11

python導(dǎo)入導(dǎo)出redis數(shù)據(jù)的實(shí)現(xiàn)