???? SSI ????????

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

python
???? SSI ????????
首頁(yè) > 腳本專欄 > python > Pandas inf值替換

Pandas中inf值替換的方法

作者:填坑小鐵鍬

本文主要介紹了Pandas中inf值替換的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

使用Pandas從MySQL讀取數(shù)據(jù),在處理之后再寫回到數(shù)據(jù)庫(kù)時(shí)報(bào)了一個(gè)錯(cuò)誤:

sqlalchemy.exc.ProgrammingError: (MySQLdb._exceptions.ProgrammingError) inf can not be used with MySQL

很明確報(bào)錯(cuò)說(shuō)明,是因?yàn)镈ataFrame中存在inf數(shù)據(jù)

出現(xiàn)inf的原因

在數(shù)據(jù)處理過(guò)程中用到了除法,并且出現(xiàn)了除數(shù)為0,導(dǎo)致出現(xiàn)inf,而數(shù)據(jù)庫(kù)不支持寫入該值
說(shuō)明,np.inf為正無(wú)窮,-np.inf為負(fù)無(wú)窮

解決辦法

將處理過(guò)之后的DataFrame中的inf值替換掉,替換代碼:

df = df.replace([np.inf, -np.inf], np.nan)

上述代碼將處理結(jié)果中的正無(wú)窮和負(fù)無(wú)窮都替換為空值,最后寫入到數(shù)據(jù)為中的為null值

PS:為了方便后續(xù)處理,可以利用numpy,將這些inf值進(jìn)行替換。

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. 將整個(gè)DataFrame中的 inf 替換為數(shù)值(空值同理)。#感謝評(píng)論區(qū)的補(bǔ)充

import numpy as np
 
df.replace(np.inf, -1) #替換正inf為-1
 
#替換正負(fù)inf為NA,加inplace參數(shù) 
df.replace([np.inf, -np.inf], np.nan, inplace=True)

到此這篇關(guān)于Pandas中inf值替換的方法的文章就介紹到這了,更多相關(guān)Pandas inf值替換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
閱讀全文
???? SSI ????????
???? SSI ????????