Pandas替換及部分替換(replace)實現流程詳解
在處理資料的時候,很多時候會遇到批量替換的情況,如果一個一個去修改效率過低,也容易出錯。replace()是很好的方法。
源資料
1、替換全部或者某一行
replace的基本結構是:df.replace(to_replace,value) 前面是需要替換的值,後面是替換後的值。
例如我們要將南岸改為城區:
將南岸改為城區
這樣Python就會搜尋整個DataFrame並將文件中所有的南岸替換成了城區(要注意這樣的操作並沒有改變文件的源資料,要改變源資料需要使用inplace = True)。
使用inplace = True更改源資料
由於南岸只有城市一列具有相同值,使用起來比較方便。
但是如果我們要改變表1Lon裡的某個資料,而不改變Longitude的資料要怎麼做呢?
改變指定的列的資料
所以只想替換部分資料的時候並且要寫入源資料就需要指定inplace。
在上面的操作只改變了表1Lon的資料,其它列的資料並沒有被替換,而且在替換後的結果不需要我們再和源資料進行合併操作,可以直接體現在源資料中。
2、替換指定的某個或指定的多個數值(用字典的形式)
只改變指定的值
這個很好理解,就是字典裡的建作為原值,字典裡的值作為替換的新值。
當然,我們也可是使用列表的形式進行替換:df.replace(['A','29.54'],['B',100])
用列表的形式進行替換
還有如果想要替換的新值是一樣的話,我們還可以這樣做:
替換的新值一樣時
部分替換和替換某個值結合使用的話就可以替換單個列的數值:
替換單個列的數值
3、使用正則表示式替換
正則表示式很強大,能夠讓我們實現一次替換很多很多個不同的值:
源資料
正則表示式沒有指定regex =True
正則表示式指定regex =True
使用正則表示式的時候記得後面加 regex=True引數。
有圖中我們可以看到只要包含有大寫的英文字母的資料都被替換了,如果我們要寫入源資料還需要指定inpla = True。
指定列替換資料
當需要將缺失值替換掉的時候,我們可以考慮直接只用fillna(),功能更強大,這個前面已經有說過了。
在某些情況下,如果我們只需要某個資料的部分內容,我們該怎麼操作呢?
比如要把變電站都改為transformer_substation,或者是把Latitude列的前面的ab改為AB:
指定列更改替換部分字元
指定列更改替換部分字元
需要注意的時更好指定列的時候,使用str.replace時不能使用inplace = True引數,因此需要改成賦值,賦值的時候不要忘了是列的賦值而不是整個表格的賦值。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。