pandas DataFrame行或列的刪除方法


pandas DataFrame的增刪查改總結系列文章:

此文我們繼續圍繞DataFrame介紹相關操作。

平時在用DataFrame時候,刪除操作用的不太多,基本是從源DataFrame中篩選數據,組成一個新的DataFrame再繼續操作。

1. 刪除DataFrame某一列

這里我們繼續用上一節產生的DataFrame來做例子,原DataFrame如下:

我們使用drop()函數,此函數有一個列表形參labels,寫的時候可以加上labels=[xxx],也可以不加,列表內羅列要刪除行或者列的名稱,默認是行名稱,如果要刪除列,則要增加參數axis=1,操作如下:

#pd.__version__ =='0.18.0'
#drop columns
test_dict_df.drop(['id'],axis=1)
#test_dict_df.drop(columns=['id']) # official operation, maybe my pandas version needs update!

結果如下,對於上面的代碼,官方教程文檔中給出了columns=['name'],但是在我測試的時候會報錯,我用的python3,pandas版本為0.18,可能是pandas版本太老的緣故。

這里注意輸出的結果是執行此方法的結果,而不是輸出test_dict_df的結果,是因為方法默認的並不是在本身執行操作,這時候輸出test_dict_df輸出的仍然是沒有進行刪除操作的原DataFrame,如果你想在原DataFrame上進行操作,需要加上inplace=True,等價於在操作完再賦值給本身:

test_dict_df.drop(['id'],axis=1,inplace=True)
# test_dict_df = test_dict_df.drop(['id'],axis=1)

2. 刪除DataFrame某一行

刪除某一行,在上面刪除列操作的時候也稍有提及,如果不加axis=1,則默認按照行號進行刪除,例如要刪除第0行和第4行:

test_dict_df.drop([0,4])

同理,你要在源DataFrame上進行操作就得加上inplace參數,否則不會在test_dict_df上改動。

當然,如果你的DataFrame有很多級,你可以加上level參數,這里就不多贅述了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM