pandas庫之drop函數(shù)

丟棄某條軸上的一個或多個項很簡單,只要有一個索引數(shù)組或列表即可。由于需要執(zhí)行一些數(shù)據整理和集合邏輯,所以drop方法返回的是一個在指定軸上刪除了指定值的新對象:

In [105]: obj = pd.Series(np.arange(5.), index=['a', 'b', 'c', 'd', 'e'])

In [106]: obj
Out[106]: 
a    0.0
b    1.0
c    2.0
d    3.0
e    4.0
dtype: float64

In [107]: new_obj = obj.drop('c')

In [108]: new_obj
Out[108]: 
a    0.0
b    1.0
d    3.0
e    4.0
dtype: float64

In [109]: obj.drop(['d', 'c'])
Out[109]: 
a    0.0
b    1.0
e    4.0
dtype: float64

對于DataFrame,可以刪除任意軸上的索引值。為了演示,先新建一個DataFrame例子:

In [110]: data = pd.DataFrame(np.arange(16).reshape((4, 4)),
   .....:                     index=['Ohio', 'Colorado', 'Utah', 'New York'],
   .....:                     columns=['one', 'two', 'three', 'four'])

In [111]: data
Out[111]: 
          one  two  three  four
Ohio        0    1      2     3
Colorado    4    5      6     7
Utah        8    9     10    11
New York   12   13     14    15

用標簽序列調用drop會從行標簽(axis 0)刪除值:

In [112]: data.drop(['Colorado', 'Ohio'])
Out[112]: 
          one  two  three  four
Utah        8    9     10    11
New York   12   13     14    15

通過傳遞axis=1或axis='columns'可以刪除列的值:

In [113]: data.drop('two', axis=1)
Out[113]: 
          one  three  four
Ohio        0      2     3
Colorado    4      6     7
Utah        8     10    11
New York   12     14    15

In [114]: data.drop(['two', 'four'], axis='columns')
Out[114]: 
          one  three
Ohio        0      2
Colorado    4      6
Utah        8     10
New York   12     14

許多函數(shù),如drop,會修改Series或DataFrame的大小或形狀,可以就地修改對象,不會返回新的對象:

In [115]: obj.drop('c', inplace=True)

In [116]: obj
Out[116]: 
a    0.0
b    1.0
d    3.0
e    4.0
dtype: float64

小心使用inplace,它會銷毀所有被刪除的數(shù)據。
drop函數(shù)的inplace方法太可怕了,就地修改會影響原數(shù)據啊。

drop函數(shù)還是比較簡單的,沒有需要過多解釋的內容。

文章代碼引用自:《利用Python進行數(shù)據分析·第2版》第5章 Pandas入門
作者:SeanCheney
感謝SeanCheney同意引用。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容