df.drop()通過指定標(biāo)簽名稱和相應(yīng)的軸,或直接給定索引或列名稱來刪除行或列
語法
df.drop(labels = None, axis = 0,
? ? ? ? index = None, columns = None,
? ? ? ? level = None, inplace = False,
? ? ? ? errors = 'raise')
參數(shù)
1.labels:要?jiǎng)h除的列或者行,如果要?jiǎng)h除多個(gè),傳入列表
2.axis:軸的方向,0為行,1為列,默認(rèn)為0
3.index:指定的一行或多行
4.columns:指定的一列或多列
5.level:索引層級(jí),將刪除此層級(jí)
6.inplace:布爾值,是否生效
7.errors:ignore或raise,默認(rèn)為raise,如果為ignore,則容忍錯(cuò)誤,僅刪除現(xiàn)有標(biāo)簽
# 刪除數(shù)據(jù) DataFrame.drop()
import pandas as pd
df = pd.DataFrame([['x','x',1],['x','x',1],['z','x',2]], columns = ['A','B','C'])
# 刪除指定行
res1 = df.drop([0,1])
res2 = df.drop(index = [0,1])
# 刪除指定列
#res3該方法一定要指定axis = 1,否則會(huì)報(bào)錯(cuò)
res3 = df.drop(['B','C'], axis = 1)
res4 = df.drop(columns = ['B','C'])
結(jié)果展示
df
res1
res2
res3
res4
刪除表中的某一行或者某一列更明智的方法是使用drop,它不改變?cè)械膁f中的數(shù)據(jù),而是返回另一個(gè)dataframe來存放刪除后的數(shù)據(jù)
擴(kuò)展
del與drop的區(qū)別
在Python中del和drop方法都能夠刪除dataframe中的列數(shù)據(jù),但兩者也有著些許區(qū)別:
1. del屬于Python的內(nèi)置函數(shù)函數(shù),drop屬于pandas中的內(nèi)置函數(shù)
2. del 刪除列
drop 刪除行和列(默認(rèn)行)
3. drop一次可以處理多個(gè)項(xiàng)目;del一次只能操作一個(gè)
4. drop可以就地操作或返回副本;del僅是就地操作
5. 兩種函數(shù)在執(zhí)行效率上很接近,但是在較大數(shù)據(jù)上,drop函數(shù)優(yōu)勢(shì)更明顯,尤其是在處理多列數(shù)據(jù)時(shí)
del crime['Total']
crime=crime.drop(['Total'],axis=1)