Pandas DataFrame replace替換后無(wú)效的解決
Pandas DataFrame replace 替換后無(wú)效
result.replace({1:'不滿意', 0:'滿意'}, inplace=True)
需要添加inplace=True參數(shù)后,result的值才會(huì)替換成功
或者
result = result.replace({1:'不滿意', 0:'滿意'})
也可以替換成功
Pandas的替換和部分替換(replace)
在處理數(shù)據(jù)的時(shí)候,很多時(shí)候會(huì)遇到批量替換的情況,如果一個(gè)一個(gè)去修改效率過(guò)低,也容易出錯(cuò)。
replace()是很好的方法。
源數(shù)據(jù):
1、替換全部或者某一行
replace的基本結(jié)構(gòu)是: df.replace(to_replace, value)
前面是需要替換的值,后面是替換后的值。
例如我們要將南岸改為城區(qū):
這樣Python就會(huì)搜索整個(gè)DataFrame并將文檔中所有的南岸替換成了城區(qū)(要注意這樣的操作并沒(méi)有改變文檔的源數(shù)據(jù),要改變?cè)磾?shù)據(jù)需要使用inplace = True)。
使用inplace = True更改源數(shù)據(jù)
由于南岸只有城市一列具有相同值,使用起來(lái)比較方便。
但是如果我們要改變表1Lon里的某個(gè)數(shù)據(jù),而不改變Longitude的數(shù)據(jù)要怎么做呢?
改變指定的列的數(shù)據(jù):
所以只想替換部分?jǐn)?shù)據(jù)的時(shí)候并且要寫入源數(shù)據(jù)就需要指定inplace。
在上面的操作只改變了表1Lon的數(shù)據(jù),其它列的數(shù)據(jù)并沒(méi)有被替換,而且在替換后的結(jié)果不需要我們?cè)俸驮磾?shù)據(jù)進(jìn)行合并操作,可以直接體現(xiàn)在源數(shù)據(jù)中。
2、替換指定的某個(gè)或指定的多個(gè)數(shù)值(用字典的形式)
只改變指定的值
這個(gè)很好理解,就是字典里的建作為原值,字典里的值作為替換的新值。
當(dāng)然,我們也可是使用列表的形式進(jìn)行替換: df.replace(['A','29.54'],['B',100])
用列表的形式進(jìn)行替換:
還有如果想要替換的新值是一樣的話,我們還可以這樣做:
部分替換和替換某個(gè)值結(jié)合使用的話就可以替換單個(gè)列的數(shù)值:
3、使用正則表達(dá)式替換
正則表達(dá)式很強(qiáng)大,能夠讓我們實(shí)現(xiàn)一次替換很多很多個(gè)不同的值:
源數(shù)據(jù)
使用正則表達(dá)式的時(shí)候記得后面加 regex=True參數(shù)。
有圖中我們可以看到只要包含有大寫的英文字母的數(shù)據(jù)都被替換了,如果我們要寫入源數(shù)據(jù)還需要指定inpla = True。
指定列替換數(shù)據(jù):
當(dāng)需要將缺失值替換掉的時(shí)候,我們可以考慮直接只用fillna(),功能更強(qiáng)大,這個(gè)前面已經(jīng)有說(shuō)過(guò)了。
在某些情況下,如果我們只需要某個(gè)數(shù)據(jù)的部分內(nèi)容,我們?cè)撛趺床僮髂兀?/p>
比如要把變電站都改為transformer_substation,或者是把Latitude列的前面的ab改為AB:
指定列更改替換部分字符
指定列更改替換部分字符
需要注意的時(shí)更好指定列的時(shí)候,使用str.replace時(shí)不能使用inplace = True參數(shù),因此需要改成賦值,賦值的時(shí)候不要忘了是列的賦值而不是整個(gè)表格的賦值。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
對(duì)pandas的dataframe繪圖并保存的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇對(duì)pandas的dataframe繪圖并保存的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08Pandas實(shí)現(xiàn)自定義Excel格式并導(dǎo)出多個(gè)sheet表
pandas默認(rèn)整合XlsxWriter驅(qū)動(dòng),可以自動(dòng)化處理excel操作,并提供公式、設(shè)置單元格格式、可視化分析圖片等操作,本文就來(lái)和大家詳細(xì)聊聊2023-05-05在Django中進(jìn)行用戶注冊(cè)和郵箱驗(yàn)證的方法
這篇文章主要介紹了在Django中進(jìn)行用戶注冊(cè)和郵箱驗(yàn)證的方法的相關(guān)資料,需要的朋友可以參考下2016-05-05python實(shí)現(xiàn)支持目錄FTP上傳下載文件的方法
這篇文章主要介紹了python實(shí)現(xiàn)支持目錄FTP上傳下載文件的方法,適用于windows及Linux平臺(tái)FTP傳輸文件及文件夾,需要的朋友可以參考下2015-06-06OpenCV-Python實(shí)現(xiàn)人臉美白算法的實(shí)例
人臉美白原理說(shuō)透了,就是一種圖像的顏色空間處理,所以我們需要通過(guò)顏色空間進(jìn)行設(shè)計(jì)。本文就詳細(xì)的介紹一下,感興趣的可以了解一下2021-06-06Python 無(wú)限級(jí)分類樹(shù)狀結(jié)構(gòu)生成算法的實(shí)現(xiàn)
這篇文章主要介紹了Python 無(wú)限級(jí)分類樹(shù)狀結(jié)構(gòu)生成算法的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Python編程中的for循環(huán)語(yǔ)句學(xué)習(xí)教程
這篇文章主要介紹了Python編程中的for循環(huán)語(yǔ)句學(xué)習(xí)教程,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10使用python驗(yàn)證代理ip是否可用的實(shí)現(xiàn)方法
驗(yàn)證代理IP是否可用。原理是使用代理IP訪問(wèn)指定網(wǎng)站,如果返回狀態(tài)為200,表示這個(gè)代理是可以使用的。這篇文章重點(diǎn)給大家介紹使用python驗(yàn)證代理ip是否可用的實(shí)現(xiàn)方法,感興趣的朋友一起看看吧2018-07-07Python基礎(chǔ)學(xué)習(xí)之函數(shù)和代碼復(fù)用詳解
函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率,下面這篇文章主要給大家介紹了關(guān)于Python基礎(chǔ)學(xué)習(xí)之函數(shù)和代碼復(fù)用的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08