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

三、對空值進行填補
語法參數(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: 填充方向,默認0和index,還可以填1和columns #inplace:在原有數(shù)據(jù)上直接修改 #limit:填充個數(shù),如1,每列只填充1個缺失值
這里用中位值填補
# 中位值填補空值 df.fillna(df.median(),inplace=True)
再次查看,確認

最后:關于更多填補方式,可以自行學習,這里只做簡單介紹。
解決python去掉數(shù)組中的空值nan的具體操作步驟
Python去掉數(shù)組中的空值nan
在Python的數(shù)據(jù)分析和科學計算中,經常會遇到包含空值或NaN(Not a Number)的數(shù)據(jù)。NaN可以表示缺失值或無效值,對于數(shù)據(jù)分析任務來說,需要將這些NaN值從數(shù)據(jù)中去掉或處理。本文將介紹如何使用Python去掉數(shù)組中的空值NaN,以及一些常用的處理方法。
1. 什么是NaN
NaN是一種特殊的浮點數(shù),在Python中使用float類型表示。它表示一個無效的或不可用的數(shù)值。NaN在數(shù)據(jù)分析中通常表示缺失值,例如在采集數(shù)據(jù)的過程中出現(xiàn)了問題或者數(shù)據(jù)缺失的情況。
2. 如何去掉數(shù)組中的空值NaN
在Python中,我們可以使用NumPy庫來處理數(shù)組中的空值NaN。NumPy是一個功能強大的科學計算庫,提供了對多維數(shù)組的支持。
首先,我們需要導入NumPy庫,并創(chuàng)建一個包含NaN的數(shù)組:
import numpy as np arr = np.array([1, 2, np.nan, 3, np.nan]) print(arr)
輸出結果為:
[ 1. 2. nan 3. nan]
接下來,我們可以使用NumPy提供的函數(shù)來處理這些NaN值。其中,isnan()函數(shù)可以用來檢測數(shù)組中的NaN值,返回一個布爾數(shù)組。
mask = np.isnan(arr) print(mask)
輸出結果為:
[False False True False True]
可以看到,mask數(shù)組中的True表示對應位置上的值是NaN,F(xiàn)alse表示不是NaN。接下來,我們可以使用~操作符來取反,將True轉換為False,F(xiàn)alse轉換為True。
arr = arr[~mask] print(arr)
輸出結果為:
[1. 2. 3.]
由于~mask是一個布爾數(shù)組,我們可以將其作為索引來獲取對應的值。上面的代碼即可將數(shù)組中的NaN值去掉。
3. 其他處理方法
除了使用NumPy庫提供的函數(shù)去掉數(shù)組中的NaN值外,我們還可以使用其他一些處理方法。
3.1 使用pandas庫
pandas是另一個常用的數(shù)據(jù)分析庫,它提供了更高級的數(shù)據(jù)結構和數(shù)據(jù)處理功能。我們可以將數(shù)組轉換為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)
輸出結果為:
0 1.0
1 2.0
3 3.0
dtype: float64
3.2 使用列表推導式
除了使用庫函數(shù)外,我們還可以使用列表推導式來去掉數(shù)組中的NaN值。列表推導式是一種簡潔的語法,可以用來創(chuàng)建新的列表。
arr = [x for x in arr if not np.isnan(x)] print(arr)
輸出結果為:
[1.0, 2.0, 3.0]
4. 總結
在Python的數(shù)據(jù)分析和科學計算中,經常需要處理含有NaN值的數(shù)組。本文介紹了使用NumPy庫去掉數(shù)組中的NaN值的方法,并提供了其他一些處理方法。通過掌握這些方法,我們可以更好地處理含有NaN值的數(shù)組,提高數(shù)據(jù)分析的準確性和效率。
代碼示例:
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ù)據(jù)分析工作中,我們可以根據(jù)具體的情況選擇合
到此這篇關于Python-NaN空值的處理的文章就介紹到這了,更多相關Python NaN空值內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python自動化短視頻生成腳本實現(xiàn)熱門視頻流水線生產
有粉絲和說,最近在網上看到一些視頻營銷號一天能發(fā)布幾百條短視頻, 感覺是批量生成的,能不能用Python做個自動化短視頻生成腳本呢?今天就帶大家一起實現(xiàn)熱門視頻批量流水線生產2021-09-09
python3實現(xiàn)網頁版raspberry pi(樹莓派)小車控制
這篇文章主要為大家詳細介紹了python3實現(xiàn)網頁版raspberry pi(樹莓派)小車控制,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-02-02
解決pyinstaller打包發(fā)布后的exe文件打開控制臺閃退的問題
今天小編就為大家分享一篇解決pyinstaller打包發(fā)布后的exe文件打開控制臺閃退的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
windows 10 設定計劃任務自動執(zhí)行 python 腳本的方法
這篇文章主要介紹了windows 10 設定計劃任務自動執(zhí)行 python 腳本的方法,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09

