如何刪除 Pandas DataFrame 列

Jinku Hu 2023年1月30日
  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 資料。

作者: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

DelftStack.com 創辦人。Jinku 在機器人和汽車行業工作了8多年。他在自動測試、遠端測試及從耐久性測試中創建報告時磨練了自己的程式設計技能。他擁有電氣/ 電子工程背景,但他也擴展了自己的興趣到嵌入式電子、嵌入式程式設計以及前端和後端程式設計。

LinkedIn Facebook

相關文章 - Pandas DataFrame

相關文章 - Pandas DataFrame Column