如何删除 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