pandas的空數(shù)據(jù)處理方式
pandas空數(shù)據(jù)處理
數(shù)據(jù)清洗是對一些沒有用的數(shù)據(jù)進行處理的過程。
很多數(shù)據(jù)集存在數(shù)據(jù)缺失、數(shù)據(jù)格式錯誤、錯誤數(shù)據(jù)或重復數(shù)據(jù)的情況,如果要使數(shù)據(jù)分析更加準確,就需要對這些沒有用的數(shù)據(jù)進行處理。
數(shù)據(jù)準備
import pandas as pd data = pd.read_csv(r'../input/pandas/property-data.csv') data
1、判斷空值 .isna()
data.isna()
對比可以看出:Pandas 把 NaN 當作空數(shù)據(jù),na 和 – 不是空數(shù)據(jù)
我們可以在讀取數(shù)據(jù)的時候,指定哪些屬于空數(shù)據(jù)
data = pd.read_csv('../input/pandas/property-data.csv', na_values = ["NaN", "na", "--"]) data.isna()
# 統(tǒng)計每個特征的空值的數(shù)量,再按照空值數(shù)量降序排列 data.isna().sum().sort_values(ascending=False)
2、空值刪除 .dropna()
如果我們要刪除包含空字段的行,可以使用 dropna() 方法,語法格式如下
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
參數(shù)說明:
axis
:默認為 0,表示逢空值剔除整行,如果設置參數(shù) axis=1 表示逢空值去掉整列。how
:默認為 ‘any’ ,如果一行(或一列)里任何一個數(shù)據(jù)有出現(xiàn) NA 就去掉整行,如果設置 how=‘all’ , 一行(或列)都是 NA 才去掉這整行。thresh
:設置需要多少非空值的數(shù)據(jù)才可以保留下來的。subset
:設置想要檢查的列。如果是多個列,可以使用列名的 list 作為參數(shù)。inplace
:如果設置 True,將計算得到的值直接覆蓋之前的值并返回 None,修改的是源數(shù)據(jù)。
假設我們要刪掉 ‘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ù)替換,常用的替換空單元格的方法是計算列的均值(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
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python爬蟲框架scrapy實現(xiàn)的文件下載功能示例
這篇文章主要介紹了Python爬蟲框架scrapy實現(xiàn)的文件下載功能,結合實例形式分析了scrapy框架進行文件下載的具體操作步驟與相關實現(xiàn)技巧,需要的朋友可以參考下2018-08-08Python機器學習從ResNet到DenseNet示例詳解
ResNet極大地改變了如何參數(shù)化深層網(wǎng)絡中函數(shù)的觀點。稠密連接網(wǎng)絡(DenseNet)在某種程度上是ResNet的邏輯擴展。讓我們先從數(shù)學上了解下2021-10-10六個Python編程最受用的內(nèi)置函數(shù)使用詳解
在日常的python編程中使用這幾個函數(shù)來簡化我們的編程工作,經(jīng)常使用能使編程效率大大地提高。本文為大家總結了六個Python編程最受用的內(nèi)置函數(shù),感興趣的可以了解一下2022-07-07Python?Watchdog實現(xiàn)實時監(jiān)控文件系統(tǒng)
Python?Watchdog是一個優(yōu)秀的第三方庫,用于實現(xiàn)高效的文件系統(tǒng)監(jiān)控,本文將為大家詳細介紹一下Python如何使用Watchdog實現(xiàn)實時監(jiān)控文件,需要的可以參考下2023-11-11python導入導出redis數(shù)據(jù)的實現(xiàn)
本文主要介紹了python導入導出redis數(shù)據(jù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02