欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pandas如何將dataframe中的NaN替換成None

 更新時間:2023年08月15日 14:31:45   作者:什么都干的派森  
這篇文章主要介紹了pandas如何將dataframe中的NaN替換成None問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

pandas將dataframe的NaN替換成None

df = df.where(df.notnull(), None)

dataframe缺失值(NaN)處理

在進(jìn)行機器學(xué)習(xí)的特征工程時,常常需要根據(jù)選擇的機器學(xué)習(xí)算法,采用合適的數(shù)據(jù)預(yù)處理方式,特別是對于對于空值(NaN)的處理,常常使人感到困惑。

一般對于NaN,常常有兩種處理方式:

  • 第一種——填補。
  • 第二種——不處理。

當(dāng)你使用sklearn庫進(jìn)行機器學(xué)習(xí)訓(xùn)練時,一般對于缺失值要求較為嚴(yán)格,因此,需要進(jìn)行填補,至于填補為何值,則需要根據(jù)業(yè)務(wù)需求進(jìn)行。

當(dāng)你使用lightgbm庫一類庫進(jìn)行機器學(xué)習(xí)訓(xùn)練時,一般不需要處理缺失值,因為這類算法,天然支持缺失值處理,它會將缺失值單獨分為一類。

本人認(rèn)為,數(shù)據(jù)的缺失,在實際中是存在一定的業(yè)務(wù)含義的,例如月收入的缺失,就反應(yīng)人對于自己收入的不自信,因此在風(fēng)控領(lǐng)域就存在更容易逾期現(xiàn)象。但此時若是進(jìn)行均值的缺失值填補,則會使該業(yè)務(wù)含義消失,因此我覺得是不可取的。

數(shù)據(jù)的特征工程決定數(shù)據(jù)質(zhì)量,數(shù)據(jù)質(zhì)量決定模型效果上限,模型參數(shù)決定訓(xùn)練的模型能否逼近理論模型,特征工程的難易復(fù)雜程度決定模型最終上線的工作量。

(以上為本人的一點點見解)

判斷缺失值的函數(shù)有:np.isnan()/ pd.isna()/pd.isnull()。

  • np.isnan():一般用于單個值,也可以用于Series或者DataFrame,但是這里存在一個坑,np.isnan()判斷datetime類型的Series或者DataFrame會報錯。
  • pd.isna()pd.isnull():用的比較多,一般推薦使用pd.isna()
s1 = pd.Series([1,2,3,np.nan])
np.isnan(s1)
>>> 0    False
	1    False
	2    False
	3     True
	dtype: bool
pd.isna(s1)
>>> 0    False
	1    False
	2    False
	3     True
	dtype: bool
pd.isnull(s1)
>>> 0    False
	1    False
	2    False
	3     True
	dtype: bool

除了以上的方法之外,還有一種較為方便和萬能的方法來判斷缺失值,取出非缺失值進(jìn)行處理(本人一般也采用這種方法)。    

通過對np.nan==np.nan發(fā)現(xiàn),np.nan是不會等于np.nan,因此我們可以通過以下方式取出非缺失值。

np.nan==np.nan
>>> False
s1 = pd.Series([1,2,3,np.nan])
s1==s1
>>> 0     True
	1     True
	2     True
	3    False
	dtype: bool
#獲取非缺失值
s1[s1==s1]
>>> 0    1.0
	1    2.0
	2    3.0
	dtype: float64
#獲取非缺失值的數(shù)量
len(s1[s1==s1])
>>>3
#對缺失值進(jìn)行填補(除了fillna外的方式)
s1[~(s1==s1)]=0
s1
>>> 0    1.0
	1    2.0
	2    3.0
	3    0.0
	dtype: float64

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python裝飾器的定義和使用詳情

    Python裝飾器的定義和使用詳情

    這篇文章主要介紹了Python裝飾器的定義和使用詳情,裝飾器給已有函數(shù)增加額外的功能的函數(shù),本質(zhì)上是一個閉包函數(shù),下文更多相關(guān)介紹需要的小伙伴可以參考一下
    2022-04-04
  • pytorch tensor計算三通道均值方式

    pytorch tensor計算三通道均值方式

    這篇文章主要介紹了pytorch tensor計算三通道均值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 使用Python在Excel中實現(xiàn)自動查找并替換數(shù)據(jù)

    使用Python在Excel中實現(xiàn)自動查找并替換數(shù)據(jù)

    隨著項目的進(jìn)展,需要經(jīng)常在Excel業(yè)務(wù)表格中查找及替換數(shù)據(jù),已保證數(shù)據(jù)與實際項目進(jìn)度一致,手動一個一個查找,然后替換,效率太低,還容易遺漏,現(xiàn)在我們來試試用Python自動完成查找及替換吧,需要的朋友可以參考下
    2023-12-12
  • Windows自動化Python?pyautogui?RPA操作實現(xiàn)

    Windows自動化Python?pyautogui?RPA操作實現(xiàn)

    本文詳細(xì)介紹了使用Python的pyautogui庫進(jìn)行Windows自動化操作的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Jupyter notebook遠(yuǎn)程訪問服務(wù)器的方法

    Jupyter notebook遠(yuǎn)程訪問服務(wù)器的方法

    今天小編就為大家分享一篇Jupyter notebook遠(yuǎn)程訪問服務(wù)器的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python中正則表達(dá)式詳解

    Python中正則表達(dá)式詳解

    Python 的 re 模塊(Regular Expression 正則表達(dá)式)提供各種正則表達(dá)式的匹配操作,Python 會將正則表達(dá)式轉(zhuǎn)化為字節(jié)碼,利用 C 語言的匹配引擎進(jìn)行深度優(yōu)先的匹配。
    2017-05-05
  • 詳解Python中break語句的用法

    詳解Python中break語句的用法

    這篇文章主要介紹了詳解Python中break語句的用法,是Python入門的呼出知識,需要的朋友可以參考下
    2015-05-05
  • Python使用cx_Oracle調(diào)用Oracle存儲過程的方法示例

    Python使用cx_Oracle調(diào)用Oracle存儲過程的方法示例

    這篇文章主要介紹了Python使用cx_Oracle調(diào)用Oracle存儲過程的方法,結(jié)合具體實例分析了Python中通過cx_Oracle調(diào)用PL/SQL的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • python海龜繪圖之畫國旗實例代碼

    python海龜繪圖之畫國旗實例代碼

    這篇文章主要給大家介紹了關(guān)于python海龜繪圖之畫國旗的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • python如何實現(xiàn)DES加密

    python如何實現(xiàn)DES加密

    這篇文章主要介紹了python如何實現(xiàn)DES加密,幫助大家更好的理解和學(xué)習(xí)密碼學(xué),感興趣的朋友可以了解下
    2020-09-09

最新評論