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