版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026西藏林芝市察隅縣機(jī)關(guān)事業(yè)單位編外輔助崗位招聘6人備考題庫及完整答案詳解1套
- 2026廣西梧州市藤縣嘉悅同心食品有限責(zé)任公司招聘36人備考題庫含答案詳解(鞏固)
- 2026天津醫(yī)科大學(xué)總醫(yī)院空港醫(yī)院代理制崗位招聘23人備考題庫帶答案詳解(奪分金卷)
- 2026福建藝術(shù)職業(yè)學(xué)院招聘3人備考題庫帶答案詳解
- 2026上半年安徽事業(yè)單位聯(lián)考合肥市廬江縣招聘36人備考題庫及答案詳解(考點(diǎn)梳理)
- 2026福建福州市連江縣融媒體中心招聘3人備考題庫完整答案詳解
- 2026貴州安創(chuàng)數(shù)智科技有限公司崗位招聘119人備考題庫含答案詳解
- 農(nóng)村電商運(yùn)營管理制度
- 微信運(yùn)營與管理制度
- 影樓門店運(yùn)營管理制度
- 深圳大疆在線測評行測題庫
- 金屬廠生產(chǎn)制度
- 2026安徽淮北市特種設(shè)備監(jiān)督檢驗(yàn)中心招聘專業(yè)技術(shù)人員4人參考題庫及答案1套
- 2025年航空行業(yè)空客智能制造報告
- 蒙牛乳業(yè)股份有限公司盈利能力分析
- 2025民航西藏空管中心社會招聘14人(第1期)筆試參考題庫附帶答案詳解(3卷合一版)
- (新教材)2026年人教版八年級下冊數(shù)學(xué) 21.2.1 平行四邊形及其性質(zhì) 課件
- 設(shè)備保養(yǎng)維護(hù)規(guī)程
- 2025年東營中考物理真題及答案
- DL-T+5860-2023+電化學(xué)儲能電站可行性研究報告內(nèi)容深度規(guī)定
- GB/T 46425-2025煤矸石山生態(tài)修復(fù)技術(shù)規(guī)范
評論
0/150
提交評論