Pandas替換及部分替換(replace)實(shí)現(xiàn)流程詳解
在處理數(shù)據(jù)的時(shí)候,很多時(shí)候會(huì)遇到批量替換的情況,如果一個(gè)一個(gè)去修改效率過低,也容易出錯(cuò)。replace()是很好的方法。
源數(shù)據(jù)
1、替換全部或者某一行
replace的基本結(jié)構(gòu)是:df.replace(to_replace, value) 前面是需要替換的值,后面是替換后的值。
例如我們要將南岸改為城區(qū):
將南岸改為城區(qū)
這樣Python就會(huì)搜索整個(gè)DataFrame并將文檔中所有的南岸替換成了城區(qū)(要注意這樣的操作并沒有改變文檔的源數(shù)據(jù),要改變源數(shù)據(jù)需要使用inplace = True)。
使用inplace = True更改源數(shù)據(jù)
由于南岸只有城市一列具有相同值,使用起來比較方便。
但是如果我們要改變表1Lon里的某個(gè)數(shù)據(jù),而不改變Longitude的數(shù)據(jù)要怎么做呢?
改變指定的列的數(shù)據(jù)
所以只想替換部分?jǐn)?shù)據(jù)的時(shí)候并且要寫入源數(shù)據(jù)就需要指定inplace。
在上面的操作只改變了表1Lon的數(shù)據(jù),其它列的數(shù)據(jù)并沒有被替換,而且在替換后的結(jié)果不需要我們再和源數(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)行替換
還有如果想要替換的新值是一樣的話,我們還可以這樣做:
替換的新值一樣時(shí)
部分替換和替換某個(gè)值結(jié)合使用的話就可以替換單個(gè)列的數(shù)值:
替換單個(gè)列的數(shù)值
3、使用正則表達(dá)式替換
正則表達(dá)式很強(qiáng)大,能夠讓我們實(shí)現(xiàn)一次替換很多很多個(gè)不同的值:
源數(shù)據(jù)
正則表達(dá)式?jīng)]有指定regex =True
正則表達(dá)式指定regex =True
使用正則表達(dá)式的時(shí)候記得后面加 regex=True參數(shù)。
有圖中我們可以看到只要包含有大寫的英文字母的數(shù)據(jù)都被替換了,如果我們要寫入源數(shù)據(jù)還需要指定inpla = True。
指定列替換數(shù)據(jù)
當(dāng)需要將缺失值替換掉的時(shí)候,我們可以考慮直接只用fillna(),功能更強(qiáng)大,這個(gè)前面已經(jīng)有說過了。
在某些情況下,如果我們只需要某個(gè)數(shù)據(jù)的部分內(nèi)容,我們該怎么操作呢?
比如要把變電站都改為transformer_substation,或者是把Latitude列的前面的ab改為AB:
指定列更改替換部分字符
指定列更改替換部分字符
需要注意的時(shí)更好指定列的時(shí)候,使用str.replace時(shí)不能使用inplace = True參數(shù),因此需要改成賦值,賦值的時(shí)候不要忘了是列的賦值而不是整個(gè)表格的賦值。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Django+Nginx+uWSGI 定時(shí)任務(wù)的實(shí)現(xiàn)方法
本文主要介紹了Django+Nginx+uWSGI 定時(shí)任務(wù)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01使用Keras畫神經(jīng)網(wǎng)絡(luò)準(zhǔn)確性圖教程
這篇文章主要介紹了使用Keras畫神經(jīng)網(wǎng)絡(luò)準(zhǔn)確性圖教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python pandas如何根據(jù)指定條件篩選數(shù)據(jù)
這篇文章主要介紹了Python pandas如何根據(jù)指定條件篩選數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02MATLAB 全景圖切割及盒圖顯示的實(shí)現(xiàn)步驟
本文給大家分兩部分介紹,第一部分通過圖文的形式給大家介紹了全景圖切割的代碼,第二部分給大家介紹了盒圖展示效果的實(shí)現(xiàn)代碼,對(duì)MATLAB 全景圖切割相關(guān)知識(shí)感興趣的朋友,跟隨小編一起看看吧2021-05-05scrapy中如何設(shè)置應(yīng)用cookies的方法(3種)
這篇文章主要介紹了scrapy中如何設(shè)置應(yīng)用cookies的方法(3種),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09python中in和is的區(qū)別點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于python中in和is的區(qū)別點(diǎn)總結(jié),有興趣的朋友可以跟著學(xué)習(xí)下。2021-05-05