如何刪除 Pandas DataFrame 列

Jinku Hu 2023年1月30日 2019年12月26日
  1. del 刪除 DataFrame 列的方法
  2. df.drop 刪除 DataFrame 列的方法
  3. df.pop 刪除 Pandas 中 DataFrame 列的方法
如何刪除 Pandas DataFrame 列

本文介紹了多種刪除 Pandas 中 DataFrame 列的方法,

  • del 方法
  • df.drop 方法
  • df.pop 方法

在本文中,我們將使用相同的 DataFrame 來演示不同的刪除方法。

>>> from pandas import DataFrame
>>> df = DataFrame.from_items(
    [('Alfa', [1, 2, 3]), 
     ('Bravo', [4, 5, 6]), 
     ('Charlie', [7,8, 9])], 
    orient='index', 
    columns=['A', 'B', 'C'])
>>> df
         A  B  C
Alfa     1  2  3
Bravo    4  5  6
Charlie  7  8  9

del 刪除 DataFrame 列的方法

>>> df
         A  B  C
Alfa     1  2  3
Bravo    4  5  6
Charlie  7  8  9
>>> del df['A']
>>> df
         B  C
Alfa     2  3
Bravo    5  6
Charlie  8  9

del df['col_name'] 刪除名稱為 col_name 的 DataFrame 列。

這種 del 方法的侷限性在於它一次只能刪除一列。

df.drop 刪除 DataFrame 列的方法

drop(self, labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')

drop 方法從行或列中刪除/刪除指定的 labels

labels 可以是單個標籤或要刪除的類似列表的索引或列標籤。

axis 指定是從索引/行(0index)還是從列(1columns)刪除標籤。

indexcolumns 是指定軸的替代方法。drop(labels, axis=0) 等於 drop(index=labels),同時 drop(labels, axis=1) 等於 drop(column=labels)

inplace 指定 DataFrame 進行就地修改,如果 inplace = True;否則,原始 DataFrame 保持不變,而它返回新的修改後的 DataFrame

>>> df
         A  B  C
Alfa     1  2  3
Bravo    4  5  6
Charlie  7  8  9
>>> df.drop(["B", "C"], axis=1)
         A
Alfa     1
Bravo    4
Charlie  7

## or equally
>>> df.drop(columns=["B", "C"])
         A
Alfa     1
Bravo    4
Charlie  7

## or drop the columns in place
>>> df.drop(columns=["B", "C"],inplace=True)
>>> df
         A
Alfa     1
Bravo    4
Charlie  7

df.pop 刪除 Pandas 中 DataFrame 列的方法

df.pop(item)

DataFrame pop 方法返回該元素並將其從 DataFrame 中刪除。

>>> df
         A  B  C
Alfa     1  2  3
Bravo    4  5  6
Charlie  7  8  9
>>> df.pop("A")
Alfa       1
Bravo      4
Charlie    7
Name: A, dtype: int64
>>> df
         B  C
Alfa     2  3
Bravo    5  6
Charlie  8  9        

如上所示,在適當位置修改了 DataFrame 資料。

Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn

相關文章 - Pandas DataFrame

相關文章 - Pandas DataFrame Column