網站首頁 編程語言 正文
如何處理DataFrame的inf值
在用DataFrame計算變化率時,例如(今天-昨天) / 昨天恰好為(2-0) / 0時,這些結果數據會變為inf。
為了方便后續處理,可以利用numpy,將這些inf值進行替換。
1. 將某1列(series格式)中的 inf 替換為數值。
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 替換為數值(空值同理)。#感謝評論區的補充
import numpy as np ? df.replace(np.inf, -1) #替換正inf為-1 ? #替換正負inf為NA,加inplace參數? df.replace([np.inf, -np.inf], np.nan, inplace=True)
DataFrame有關inf的處理技巧
numpy中inf的相關文檔
什么是inf?
IEEE 754浮點表示(正)無窮大。
為什么會產生?
>>> np.NINF -inf >>> np.inf inf >>> np.log(0) -inf >>> np.array([1,2])/0 #碰到的最多的情況 array([ inf, ?inf])
產生inf有什么好處?
目前沒看到有什么好處,只是單純用inf表示無窮大,方便理解和表示。
產生inf有什么壞處?
對用戶而言,對inf需要特殊處理,加大了工作量。
為什么需要特殊處理?因為許多機器學習算法庫并不支持對inf的處理。
怎么處理?
常見的處理方法:
- 不處理
- 替換
怎么獲取到inf的所在位置并進行填補?
-
isinf
:顯示哪些元素為正或負無窮大 -
isposinf
:顯示哪些元素為正無窮大 -
isneginf
:顯示哪些元素為負無窮大 -
isnan
:顯示哪些元素不是數字 -
isfinite
:顯示哪些元素是有限的(不是非數字,正無窮大和負無窮大中的一個)
''' >>> np.isinf(np.inf) #其他函數同理使用,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
原文鏈接:https://xiaoshuwen.blog.csdn.net/article/details/103126133
相關推薦
- 2022-11-30 Docker容器數據卷的使用教程_docker
- 2024-03-18 SpringBoot + Mybatis 多數據源配置打印SQL失效問題(mybatis.confi
- 2023-08-13 什么是單點登錄?
- 2022-03-27 C++引用和指針的區別你知道嗎_C 語言
- 2023-02-12 Android?onbackpressed實現返回鍵的攔截和彈窗流程分析_Android
- 2023-11-26 (有效解決)Android Studio 運行項目時報 Package install error:
- 2022-07-08 python使用IPython調試debug程序_python
- 2022-11-10 Android實現傳感器功能_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支