解讀dataframe中有關inf的處理技巧
dataframe有關inf的處理
什么是inf?
IEEE 754浮點表示(正)無窮大。
為什么會產(chǎn)生?
>>> np.NINF -inf >>> np.inf inf >>> np.log(0) -inf >>> np.array([1,2])/0 #碰到的最多的情況 array([ inf, inf])
產(chǎn)生inf有什么好處?
目前沒看到有什么好處,只是單純用inf表示無窮大,方便理解和表示。
產(chǎn)生inf有什么壞處?
對用戶而言,對inf需要特殊處理,加大了工作量。
為什么需要特殊處理?因為許多機器學習算法庫并不支持對inf的處理。
怎么處理?
常見的處理方法:
- 不處理
- 替換
怎么獲取到inf的所在位置并進行填補?
''' isinf:顯示哪些元素為正或負無窮大 isposinf:顯示哪些元素為正無窮大 isneginf:顯示哪些元素為負無窮大 isnan:顯示哪些元素不是數(shù)字 isfinite:顯示哪些元素是有限的(不是非數(shù)字,正無窮大和負無窮大中的一個) ''' >>> np.isinf(np.inf) #其他函數(shù)同理使用,isinf使用最多。 True >>> np.isinf(np.array([1,np.inf])) array([False, True], dtype=bool) >>>np.isinf(pd.DataFrame(np.array([1,np.inf]))) 0 0 False 1 True >>>s1 = pd.Series([1,2,3,np.inf]) >>>s1 0 1.0 1 2.0 2 3.0 3 NaN dtype: float64 #對inf填補 999 >>>s1[np.isinf(s1)] = 999 >>>s1 0 1.0 1 2.0 2 3.0 3 999.0 dtype: float64 #對inf填補np.nan (較為常用) >>>s1[np.isinf(s1)] = np.nan >>>s1 0 1.0 1 2.0 2 3.0 3 NaN dtype: float64
Pandas處理DataFrame中的inf值
在用DataFrame計算變化率時,例如(今天-昨天) / 昨天恰好為(2-0) / 0時,這些結果數(shù)據(jù)會變?yōu)閕nf。
為了方便后續(xù)處理,可以利用numpy,將這些inf值進行替換。
1. 將某1列(series格式)中的 inf 替換為數(shù)值。
import numpy as np df['Col'][np.isinf(df['Col'])] = -1
2. 將某1列(series格式)中的 inf 替換為NA值。
import numpy as np df['Col'][np.isinf(df['Col'])] = np.nan
3. 將整個DataFrame中的 inf 替換為數(shù)值(空值同理)。#感謝評論區(qū)的補充
import numpy as np df.replace(np.inf, -1) #替換正inf為-1 #替換正負inf為NA,加inplace參數(shù)? df.replace([np.inf, -np.inf], np.nan, inplace=True)
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python webdriver.Chrome()的使用解讀
這篇文章主要介紹了Python webdriver.Chrome()的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02Python使用tkinter實現(xiàn)搖骰子小游戲功能的代碼
這篇文章主要介紹了Python使用tkinter實現(xiàn)的搖骰子小游戲功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07Jupyter Notebook調(diào)用指定的虛擬環(huán)境的實現(xiàn)示例
本文主要介紹了Jupyter Notebook調(diào)用指定的虛擬環(huán)境的實現(xiàn)示例,,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07Python中使用正則表達式及正則表達式匹配規(guī)則詳解
這篇文章主要介紹了Python中使用正則表達式以及正則表達式匹配規(guī)則,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03集成開發(fā)環(huán)境Pycharm的安裝及模板設置圖文教程
PyCharm是一種Python的集成開發(fā)環(huán)境,帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高效率的工具,這篇文章主要介紹了集成開發(fā)環(huán)境Pycharm的安裝及模板設置,需要的朋友可以參考下2022-07-07