首頁 > 軟體

pandas刪除某行或某列資料的實現範例

2022-08-01 14:02:51

首先,建立一個DataFrame格式資料作為舉例資料。

# 建立一個DataFrame格式資料
data = {'a': ['a0', 'a1', 'a2'],
        'b': ['b0', 'b1', 'b2'],
        'c': [i for i in range(3)],
        'd': 4}
df = pd.DataFrame(data)
print('舉例資料情況:n', df)

注:DataFrame是最常用的pandas物件,使用pandas讀取資料檔案後,資料就以DataFrame資料結構儲存在記憶體中。

pandas資料行列刪除,主要用到drop()和del函數,用法如下:

1、drop()函數

語法:

DataFrame.drop(labels,axis=0,level=None,inplace=False,errors='raise')
引數說明
labels接收string或array,代表要刪除的行或列的標籤(行名或列名)。無預設值
axis接收0或1,代表操作的軸(行或列)。預設為0,代表行;1為列。
level接收int或索引名,代表標籤所在級別。預設為None
inplace接收布林值,代表操作是否對原資料生效,預設為False
errorserrors='raise’會讓程式在labels接收到沒有的行名或者列名時丟擲錯誤導致程式停止執行,errors='ignore’會忽略沒有的行名或者列名,只對存在的行名或者列名進行操作。預設為‘errors=‘raise’’。

範例1:刪除d列

df1 = df.drop(labels='d', axis=1)
print('刪除d列前:n', df)
print('刪除d列後:n', df1)

範例2:刪除第一行

df2 = df.drop(labels=0)
print('刪除前:n', df)
print('刪除列:n', df2)

範例3:同時刪除多行多列

df3 = df.drop(labels=['a', 'b'], axis=1) # 同時刪除a,b列
df4 = df.drop(labels=range(2)) # 等價於df.drop(labels=[0,1])
print('刪除前:n', df)
print('刪除多列(a,b):n', df3)
print('刪除多行(第1,2行):n', df4)

注意:(1)、刪除列的操作時,axis引數不可省,因為axis預設為0(行);
(2)、沒有加入inplace引數,預設不會對原來資料進行修改,需要將結果賦值給新的變數。

2、del函數

語法:del df[‘列名’]
此操作會對原資料df進行刪除,且一次只能刪除一列。
正確用法:

del df['d']
print('原地刪除d列後:n', df)

錯誤用法:

del df[['a', 'b']]
print(df)

以上就是pandas刪除某行某列資料的用法,drop()相對於del()來說,靈活性更高,更為實用。更多相關pandas刪除某行某列內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com