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()此時(shí)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:填充個(gè)數(shù),如1,每列只填充1個(gè)缺失值
這里用中位值填補(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)常會(huì)遇到包含空值或NaN(Not a Number)的數(shù)據(jù)。NaN可以表示缺失值或無效值,對于數(shù)據(jù)分析任務(wù)來說,需要將這些NaN值從數(shù)據(jù)中去掉或處理。本文將介紹如何使用Python去掉數(shù)組中的空值NaN,以及一些常用的處理方法。
1. 什么是NaN
NaN是一種特殊的浮點(diǎn)數(shù),在Python中使用float類型表示。它表示一個(gè)無效的或不可用的數(shù)值。NaN在數(shù)據(jù)分析中通常表示缺失值,例如在采集數(shù)據(jù)的過程中出現(xiàn)了問題或者數(shù)據(jù)缺失的情況。
2. 如何去掉數(shù)組中的空值NaN
在Python中,我們可以使用NumPy庫來處理數(shù)組中的空值NaN。NumPy是一個(gè)功能強(qiáng)大的科學(xué)計(jì)算庫,提供了對多維數(shù)組的支持。
首先,我們需要導(dǎo)入NumPy庫,并創(chuàng)建一個(gè)包含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值,返回一個(gè)布爾數(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是一個(gè)布爾數(shù)組,我們可以將其作為索引來獲取對應(yīng)的值。上面的代碼即可將數(shù)組中的NaN值去掉。
3. 其他處理方法
除了使用NumPy庫提供的函數(shù)去掉數(shù)組中的NaN值外,我們還可以使用其他一些處理方法。
3.1 使用pandas庫
pandas是另一個(gè)常用的數(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)文章
Python自動(dòng)化短視頻生成腳本實(shí)現(xiàn)熱門視頻流水線生產(chǎn)
有粉絲和說,最近在網(wǎng)上看到一些視頻營銷號一天能發(fā)布幾百條短視頻, 感覺是批量生成的,能不能用Python做個(gè)自動(dòng)化短視頻生成腳本呢?今天就帶大家一起實(shí)現(xiàn)熱門視頻批量流水線生產(chǎn)2021-09-09
python3實(shí)現(xiàn)網(wǎng)頁版raspberry pi(樹莓派)小車控制
這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)網(wǎng)頁版raspberry pi(樹莓派)小車控制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
解決pyinstaller打包發(fā)布后的exe文件打開控制臺閃退的問題
今天小編就為大家分享一篇解決pyinstaller打包發(fā)布后的exe文件打開控制臺閃退的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
pycharm下查看python的變量類型和變量內(nèi)容的方法
windows 10 設(shè)定計(jì)劃任務(wù)自動(dòng)執(zhí)行 python 腳本的方法

