最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何一分鐘內(nèi)找出pandas DataFrame某列中的nan值

 更新時間:2023年09月12日 14:42:31   作者:六個橙子_lc  
這篇文章主要介紹了如何一分鐘內(nèi)找出pandas DataFrame某列中的nan值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一分鐘內(nèi)找出pandas DataFrame某列中的nan值

例如

對格式為DataFrame的變量element,找出其中TEM列里所有的nan值

element=read_element(TRHCLO_data_path,end_trans,sta_info)

步驟一

element_right=element[~(np.isnan(element["TEM"]))] #(element["TEM"]).isna()
element_nan=(element[np.isnan(element["TEM"])])

此時程序報錯:

ufunc ‘isnan’ not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ‘‘safe’’

步驟二

對查詢列(TEM列)的數(shù)據(jù)類型進(jìn)行一次標(biāo)準(zhǔn)處理即可

element["TEM"]=(element["TEM"]).astype(float)  #對下面的np.isnan查詢很必要,否則會報格式錯誤
element_right=element[~(np.isnan(element["TEM"]))] 
element_nan=(element[np.isnan(element["TEM"])])

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)文章

最新評論

东兴市| 荣昌县| 会理县| 德化县| 镇雄县| 金秀| 临沧市| 嘉黎县| 安宁市| 汝州市| 夏邑县| 化德县| 永州市| 行唐县| 娄烦县| 浪卡子县| 山东省| 调兵山市| 舞阳县| 华安县| 惠安县| 营山县| 左云县| 五常市| 洞口县| 三明市| 忻州市| 祁阳县| 湛江市| 天全县| 新宁县| 庆城县| 禄劝| 北川| 綦江县| 遂川县| 文安县| 浑源县| 益阳市| 镶黄旗| 西吉县|