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

Pandas DataFrame replace替換后無效的解決

 更新時間:2023年08月15日 11:50:44   作者:HysteriaAoo  
這篇文章主要介紹了Pandas DataFrame replace替換后無效的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Pandas DataFrame replace 替換后無效

result.replace({1:'不滿意', 0:'滿意'}, inplace=True)

需要添加inplace=True參數(shù)后,result的值才會替換成功

或者

result = result.replace({1:'不滿意', 0:'滿意'})

也可以替換成功

Pandas的替換和部分替換(replace)

在處理數(shù)據(jù)的時候,很多時候會遇到批量替換的情況,如果一個一個去修改效率過低,也容易出錯。

replace()是很好的方法。

源數(shù)據(jù):

1、替換全部或者某一行

replace的基本結構是: df.replace(to_replace, value) 前面是需要替換的值,后面是替換后的值。

例如我們要將南岸改為城區(qū):

這樣Python就會搜索整個DataFrame并將文檔中所有的南岸替換成了城區(qū)(要注意這樣的操作并沒有改變文檔的源數(shù)據(jù),要改變源數(shù)據(jù)需要使用inplace = True)。

使用inplace = True更改源數(shù)據(jù)

由于南岸只有城市一列具有相同值,使用起來比較方便。

但是如果我們要改變表1Lon里的某個數(shù)據(jù),而不改變Longitude的數(shù)據(jù)要怎么做呢?

改變指定的列的數(shù)據(jù):

所以只想替換部分數(shù)據(jù)的時候并且要寫入源數(shù)據(jù)就需要指定inplace。

在上面的操作只改變了表1Lon的數(shù)據(jù),其它列的數(shù)據(jù)并沒有被替換,而且在替換后的結果不需要我們再和源數(shù)據(jù)進行合并操作,可以直接體現(xiàn)在源數(shù)據(jù)中。

2、替換指定的某個或指定的多個數(shù)值(用字典的形式)

只改變指定的值

這個很好理解,就是字典里的建作為原值,字典里的值作為替換的新值。

當然,我們也可是使用列表的形式進行替換: df.replace(['A','29.54'],['B',100])

用列表的形式進行替換:

還有如果想要替換的新值是一樣的話,我們還可以這樣做:

部分替換和替換某個值結合使用的話就可以替換單個列的數(shù)值:

3、使用正則表達式替換

正則表達式很強大,能夠讓我們實現(xiàn)一次替換很多很多個不同的值:

源數(shù)據(jù)

使用正則表達式的時候記得后面加 regex=True參數(shù)。

有圖中我們可以看到只要包含有大寫的英文字母的數(shù)據(jù)都被替換了,如果我們要寫入源數(shù)據(jù)還需要指定inpla = True。

指定列替換數(shù)據(jù):

當需要將缺失值替換掉的時候,我們可以考慮直接只用fillna(),功能更強大,這個前面已經(jīng)有說過了。

在某些情況下,如果我們只需要某個數(shù)據(jù)的部分內(nèi)容,我們該怎么操作呢?

比如要把變電站都改為transformer_substation,或者是把Latitude列的前面的ab改為AB:

指定列更改替換部分字符

指定列更改替換部分字符

需要注意的時更好指定列的時候,使用str.replace時不能使用inplace = True參數(shù),因此需要改成賦值,賦值的時候不要忘了是列的賦值而不是整個表格的賦值。

總結

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

相關文章

最新評論