Python NaN空值的處理示例詳解
Python NaN空值的處理
一、先讀取數(shù)據(jù)集
將讀取的表格信息命名為df
import pandas as pd import warnings warnings.filterwarnings('ignore') f = open(r"D:\Python\abalone.csv") df = pd.read_csv(f,sep=",") df.head()
此時df為DataFrame的格式
二、檢查是否有空值
null_all = df.isnull().sum() null_all
三、對空值進(jìn)行填補(bǔ)
語法參數(shù)介紹
fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs) #value:固定值,可以用固定數(shù)字、均值、中位數(shù)、眾數(shù)等,此外還可以用字典,series等形式數(shù)據(jù); #method:填充方法,'bfill','backfill','pad','ffill' #axis: 填充方向,默認(rèn)0和index,還可以填1和columns #inplace:在原有數(shù)據(jù)上直接修改 #limit:填充個數(shù),如1,每列只填充1個缺失值
這里用中位值填補(bǔ)
# 中位值填補(bǔ)空值 df.fillna(df.median(),inplace=True)
再次查看,確認(rèn)
最后:關(guān)于更多填補(bǔ)方式,可以自行學(xué)習(xí),這里只做簡單介紹。
解決python去掉數(shù)組中的空值nan的具體操作步驟
Python去掉數(shù)組中的空值nan
在Python的數(shù)據(jù)分析和科學(xué)計(jì)算中,經(jīng)常會遇到包含空值或NaN(Not a Number)的數(shù)據(jù)。NaN可以表示缺失值或無效值,對于數(shù)據(jù)分析任務(wù)來說,需要將這些NaN值從數(shù)據(jù)中去掉或處理。本文將介紹如何使用Python去掉數(shù)組中的空值NaN,以及一些常用的處理方法。
1. 什么是NaN
NaN是一種特殊的浮點(diǎn)數(shù),在Python中使用float類型表示。它表示一個無效的或不可用的數(shù)值。NaN在數(shù)據(jù)分析中通常表示缺失值,例如在采集數(shù)據(jù)的過程中出現(xiàn)了問題或者數(shù)據(jù)缺失的情況。
2. 如何去掉數(shù)組中的空值NaN
在Python中,我們可以使用NumPy庫來處理數(shù)組中的空值NaN。NumPy是一個功能強(qiáng)大的科學(xué)計(jì)算庫,提供了對多維數(shù)組的支持。
首先,我們需要導(dǎo)入NumPy庫,并創(chuàng)建一個包含NaN的數(shù)組:
import numpy as np arr = np.array([1, 2, np.nan, 3, np.nan]) print(arr)
輸出結(jié)果為:
[ 1. 2. nan 3. nan]
接下來,我們可以使用NumPy提供的函數(shù)來處理這些NaN值。其中,isnan()函數(shù)可以用來檢測數(shù)組中的NaN值,返回一個布爾數(shù)組。
mask = np.isnan(arr) print(mask)
輸出結(jié)果為:
[False False True False True]
可以看到,mask數(shù)組中的True表示對應(yīng)位置上的值是NaN,F(xiàn)alse表示不是NaN。接下來,我們可以使用~操作符來取反,將True轉(zhuǎn)換為False,F(xiàn)alse轉(zhuǎn)換為True。
arr = arr[~mask] print(arr)
輸出結(jié)果為:
[1. 2. 3.]
由于~mask是一個布爾數(shù)組,我們可以將其作為索引來獲取對應(yīng)的值。上面的代碼即可將數(shù)組中的NaN值去掉。
3. 其他處理方法
除了使用NumPy庫提供的函數(shù)去掉數(shù)組中的NaN值外,我們還可以使用其他一些處理方法。
3.1 使用pandas庫
pandas是另一個常用的數(shù)據(jù)分析庫,它提供了更高級的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)處理功能。我們可以將數(shù)組轉(zhuǎn)換為pandas的Series或DataFrame對象,然后使用dropna()函數(shù)去掉其中的NaN值。
import pandas as pd s = pd.Series([1, 2, np.nan, 3, np.nan]) s = s.dropna() print(s)
輸出結(jié)果為:
0 1.0
1 2.0
3 3.0
dtype: float64
3.2 使用列表推導(dǎo)式
除了使用庫函數(shù)外,我們還可以使用列表推導(dǎo)式來去掉數(shù)組中的NaN值。列表推導(dǎo)式是一種簡潔的語法,可以用來創(chuàng)建新的列表。
arr = [x for x in arr if not np.isnan(x)] print(arr)
輸出結(jié)果為:
[1.0, 2.0, 3.0]
4. 總結(jié)
在Python的數(shù)據(jù)分析和科學(xué)計(jì)算中,經(jīng)常需要處理含有NaN值的數(shù)組。本文介紹了使用NumPy庫去掉數(shù)組中的NaN值的方法,并提供了其他一些處理方法。通過掌握這些方法,我們可以更好地處理含有NaN值的數(shù)組,提高數(shù)據(jù)分析的準(zhǔn)確性和效率。
代碼示例:
import numpy as np arr = np.array([1, 2, np.nan, 3, np.nan]) print(arr) mask = np.isnan(arr) print(mask) arr = arr[~mask] print(arr) import pandas as pd s = pd.Series([1, 2, np.nan, 3, np.nan]) s = s.dropna() print(s) arr = [x for x in arr if not np.isnan(x)] print(arr)
通過本文的介紹,相信讀者對Python去掉數(shù)組中的空值NaN有了更加深入的了解。在實(shí)際的數(shù)據(jù)分析工作中,我們可以根據(jù)具體的情況選擇合
到此這篇關(guān)于Python-NaN空值的處理的文章就介紹到這了,更多相關(guān)Python NaN空值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pandas?Matplotlib保存圖形時坐標(biāo)軸標(biāo)簽太長導(dǎo)致顯示不全問題的解決
在使用matplotlib作圖的時候,有的時候會遇到畫圖時顯示不全和圖片保存時不完整的問題,這篇文章主要給大家介紹了關(guān)于Pandas?Matplotlib保存圖形時坐標(biāo)軸標(biāo)簽太長導(dǎo)致顯示不全問題的解決方法,需要的朋友可以參考下2022-06-06python實(shí)現(xiàn)計(jì)數(shù)排序與桶排序?qū)嵗a
這篇文章主要介紹了python計(jì)數(shù)排序與桶排序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03python基礎(chǔ)教程之python消息摘要算法使用示例
這篇文章主要介紹了python中的消息摘要算法使用示例,需要的朋友可以參考下2014-02-02Python調(diào)用win10toast框架實(shí)現(xiàn)定時調(diào)起系統(tǒng)通知
win10toast是一個windows通知的出發(fā)框架,使用它可以輕松的調(diào)起系統(tǒng)通知。通過它可以很方便的做一個定時通知的功能應(yīng)用。本文將調(diào)用win10toast實(shí)現(xiàn)定時調(diào)起系統(tǒng)通知功能,需要的可以參考一下2022-01-01Python開發(fā)文字版密室逃脫游戲的實(shí)例(含代碼)
密室逃脫游戲是一種頗受歡迎的解謎類游戲,玩家通常需要通過觀察、推理、合作等方式解決一系列難題,以逃脫困境,在這篇博文中,我們將使用Python開發(fā)一個文字版密室逃脫游戲,旨在通過簡單的文本交互來呈現(xiàn)游戲的趣味性與挑戰(zhàn)性2025-04-04