Pandas.DataFrame刪除指定行和列(drop)的實(shí)現(xiàn)_第1頁
Pandas.DataFrame刪除指定行和列(drop)的實(shí)現(xiàn)_第2頁
Pandas.DataFrame刪除指定行和列(drop)的實(shí)現(xiàn)_第3頁
Pandas.DataFrame刪除指定行和列(drop)的實(shí)現(xiàn)_第4頁
Pandas.DataFrame刪除指定行和列(drop)的實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第Pandas.DataFrame刪除指定行和列(drop)的實(shí)現(xiàn)目錄DataFrame指定的行刪除按行名指定(行標(biāo)簽)按行號指定未設(shè)置行名的注意事項DataFrame指定的列刪除按列名指定(列標(biāo)簽)按列號指定多行多列的刪除使用drop()方法刪除pandas.DataFrame的行和列。

在0.21.0版之前,請使用參數(shù)labels和axis指定行和列。從0.21.0開始,可以使用index或columns。

在此,將對以下內(nèi)容進(jìn)行說明。

DataFrame指定的行刪除按行名指定(行標(biāo)簽)按行號指定未設(shè)置行名的注意事項DataFrame指定的列刪除按列名指定(列標(biāo)簽)按列號指定多行多列的刪除

刪除缺失值NaN和刪除具有重復(fù)元素的行,請參考文章。

Pandas刪除,替換并提取其中的缺失值NaN(dropna,fillna,isnull)

以下數(shù)據(jù)用作示例代碼中的示例。

importpandasaspd

df=pd.read_csv('./data/12/sample_pandas_normal.csv',index_col=0)

print(df)

#

agestate

point

#name

#Alice

24

NY

64

#Bob

42

CA

92

#Charlie

18

CA

70

#Dave

68

TX

70

#Ellen

24

CA

88

#Frank

30

NY

57

DataFrame指定的行刪除

按行名指定(行標(biāo)簽)

它由第一個參數(shù)labels和第二個參數(shù)axis指定。行指定axis=0。

print(df.drop('Charlie',axis=0))

#agestatepoint

#name

#Alice24NY64

#Bob42CA92

#Dave68TX70

#Ellen24CA88

#Frank30NY57

默認(rèn)值為axis=0,因此可以省略axis。

print(df.drop('Charlie'))

#agestatepoint

#name

#Alice24NY64

#Bob42CA92

#Dave68TX70

#Ellen24CA88

#Frank30NY57

從0.21.0或更高版本開始,它也可以由參數(shù)索引指定。

print(df.drop(index='Charlie'))

#agestatepoint

#name

#Alice24NY64

#Bob42CA92

#Dave68TX70

#Ellen24CA88

#Frank30NY57

如果要一次刪除多行,請在列表中指定。

print(df.drop(['Bob','Dave','Frank']))

#

agestate

point

#name

#Alice

24

NY

64

#Charlie

18

CA

70

#Ellen

24

CA

88

print(df.drop(index=['Bob','Dave','Frank']))

#

agestate

point

#name

#Alice

24

NY

64

#Charlie

18

CA

70

#Ellen

24

CA

88

默認(rèn)情況下,原始DataFrame保持不變,并返回一個新的DataFrame。如果參數(shù)inplace設(shè)置為True,則將更改原始DataFrame。在這種情況下,不會返回任何新的DataFrame,并且返回值為None。

按行號指定

如果要按行號指定,請使用DataFrame的index屬性。

如果在index屬性的[]中指定行號,則可以獲得相應(yīng)的行名??梢栽诹斜碇兄付ǘ鄠€行號。

print(df.index[[1,3,5]])

#Index(['Bob','Dave','Frank'],dtype='object',name='name')

在drop()第一個的參數(shù)中指定labels或index的名稱。

print(df.drop(df.index[[1,3,5]]))

#

agestate

point

#name

#Alice

24

NY

64

#Charlie

18

CA

70

#Ellen

24

CA

88

print(df.drop(index=df.index[[1,3,5]]))

#

agestate

point

#name

#Alice

24

NY

64

#Charlie

18

CA

70

#Ellen

24

CA

88

未設(shè)置行名的注意事項

如果未設(shè)置行名,則index默認(rèn)為整數(shù)序號。當(dāng)使用數(shù)字值而不是這樣的字符串作為索引時要小心。

df_noindex=pd.read_csv('./data/12/sample_pandas_normal.csv')

print(df_noindex)

#

name

agestate

point

#0

Alice

24

NY

64

#1

Bob

42

CA

92

#2

Charlie

18

CA

70

#3

Dave

68

TX

70

#4

Ellen

24

CA

88

#5

Frank

30

NY

57

print(df_noindex.index)

#RangeIndex(start=0,stop=6,step=1)

如果是序列號,則無論原樣指定數(shù)字值還是使用index屬性,結(jié)果都將相同。

print(df_noindex.drop([1,3,5]))

#

name

agestate

point

#0

Alice

24

NY

64

#2

Charlie

18

CA

70

#4

Ellen

24

CA

88

print(df_noindex.drop(df_noindex.index[[1,3,5]]))

#

name

agestate

point

#0

Alice

24

NY

64

#2

Charlie

18

CA

70

#4

Ellen

24

CA

88

如果由于排序原因其不是序列號,結(jié)果將有所不同。當(dāng)直接指定數(shù)字值時,將刪除行標(biāo)簽為該數(shù)字值的行,而當(dāng)使用index屬性時,將刪除其行號為該數(shù)字值的行。

df_noindex_sort=df_noindex.sort_values('state')

print(df_noindex_sort)

#

name

agestate

point

#1

Bob

42

CA

92

#2

Charlie

18

CA

70

#4

Ellen

24

CA

88

#0

Alice

24

NY

64

#5

Frank

30

NY

57

#3

Dave

68

TX

70

print(df_noindex_sort.index)

#Int64Index([1,2,4,0,5,3],dtype='int64')

print(df_noindex_sort.drop([1,3,5]))

#

name

agestate

point

#2

Charlie

18

CA

70

#4

Ellen

24

CA

88

#0

Alice

24

NY

64

print(df_noindex_sort.drop(df_noindex_sort.index[[1,3,5]]))

#

name

agestate

point

#1

Bob

42

CA

92

#4

Ellen

24

CA

88

#5

Frank

30

NY

57

DataFrame指定的列刪除

按列名指定(列標(biāo)簽)

它由第一個參數(shù)labels和第二個參數(shù)axis指定。列指定axis=1。

print(df.drop('state',axis=1))

#agepoint

#name

#Alice2464

#Bob4292

#Charlie1870

#Dave6870

#Ellen2488

#Frank3057

從0.21.0或更高版本開始,可以使用參數(shù)列指定它。

print(df.drop(columns='state'))

#agepoint

#name

#Alice2464

#Bob4292

#Charlie1870

#Dave6870

#Ellen2488

#Frank3057

如果要一次刪除多個列,請在列表中指定。

print(df.drop(['state','point'],axis=1))

#

age

#name

#Alice

24

#Bob

42

#Charlie

18

#Dave

68

#Ellen

24

#Frank

30

print(df.drop(columns=['state','point']))

#

age

#name

#Alice

24

#Bob

42

#Charlie

18

#Dave

68

#Ellen

24

#Frank

30

參數(shù)inplace的使用方法與行的相同。

df_org=df.copy()

df_org.drop(columns=['state','point'],inplace=True)

print(df_org)

#age

#name

#Alice24

#Bob42

#Charlie18

#Dave68

#Ellen24

#Frank30

按列號指定

如果要按列號指定,請使用DataFrame的columns屬性。

print(df.columns[[1,2]])

#Index(['state','point'],dtype='object')

print(df.drop(df.columns[[1,2]],axis=1))

#

age

#name

#Alice

24

#Bob

42

#Charlie

18

#Dave

68

#Ellen

24

#Frank

30

print(df.drop(columns=df.columns[[1,2]]))

#

age

#name

#Alice

24

#Bob

42

#Charlie

18

#Dave

68

#Ellen

24

#Frank

30

如果columns是整數(shù)值,請小心上述行。

多行多列的刪除

從0.21.0及更高版本開始,可以通過同時指定參數(shù)index和column來刪除多行/多列。

當(dāng)然,也可以通過行號/列號指定,和使用參數(shù)inplace。

print(df.drop(index=['Bob','Dave',

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論