關于pandas中的.update()方法解析
update()方法
在Pandas中,update()
方法用于將一個DataFrame或Series對象中的值更新為另一個DataFrame或Series對象中的對應值。
這個方法可以用來在原地更新數(shù)據(jù),而不需要創(chuàng)建一個新的對象。
update()
方法有幾個參數(shù),其中最重要的是other
參數(shù),它指定了用來更新當前對象的另一個DataFrame或Series對象。
當調用update()
方法時,它會將other
對象中的值替換當前對象中相應位置的值。
下面是update()方法的基本語法:
DataFrame.update(other, overwrite=True, filter_func=None, errors='raise')
- other:要用來更新當前對象的另一個DataFrame或Series對象。
- overwrite:一個布爾值,指定是否要覆蓋當前對象中的值。默認為True,表示用other對象中的值完全替換當前對象中的值;如果設置為False,則只會替換NaN值。
- filter_func:一個可調用對象,用于篩選要更新的值。只有返回True的值才會被更新。
- errors:指定處理錯誤的方式。默認為’raise’,表示如果更新過程中出現(xiàn)錯誤,將引發(fā)異常;如果設置為’ignore’,則會忽略錯誤并繼續(xù)執(zhí)行。
需要注意的是,update()方法會就地修改當前對象,而不會返回一個新的對象。這與許多Pandas方法的行為不同,因為它們通常會返回一個新的對象。因此在使用update()方法之前,請確保對數(shù)據(jù)進行了適當?shù)膫浞莼蛘叽_保沒有破壞原始數(shù)據(jù)的需求。
讓我們從需要更新開始,我們的數(shù)據(jù)如下:
我們想要將下面的數(shù)據(jù)匹配到原始數(shù)據(jù)上:
如果直接使用,看看結果是什么:
df.update(df1) df
所有單元格都將被替換,除非我們的新DF有空,update()方法內聯(lián)地改變了原始的數(shù)據(jù),而不是創(chuàng)建副本。
overwrite參數(shù)
除了空值所有單元格都被替換了,這時因為.update()只是假設新數(shù)據(jù)更相關。如果只想替換缺失的值,請可以設置參數(shù)’ overwrite = False ’
df.update(df1,overwrite=False) df
filter_func參數(shù)
也可以通過使用’ filter_func '參數(shù)來更新除null以外的單元格。例如只替換偶數(shù)的值。
df.update(df1,filter_func=lambda x : x%2==0) df
可以看到只更新了符合判斷條件的值。update()方法可以方便的將一個DataFrame或Series對象中的值更新為另一個DataFrame或Series對象中的對應值,但是我們卻很少用到它。所以在處理缺失或者過期數(shù)據(jù)更新時,pandas中的update方法是一個很有用的工具。但是需要注意的是,在使用update()方法之前,需要對數(shù)據(jù)進行了適當?shù)膫浞莼蛘叽_保沒有破壞原始數(shù)據(jù)的需求,因為他會直接修改我們的DF。
到此這篇關于關于pandas中的.update()方法解析的文章就介紹到這了,更多相關pandas的.update()方法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python數(shù)據(jù)預處理之將類別數(shù)據(jù)轉換為數(shù)值的方法
下面小編就為大家?guī)硪黄猵ython數(shù)據(jù)預處理之將類別數(shù)據(jù)轉換為數(shù)值的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07