pandas.DataFrame.drop#

DataFrame.drop(labels=None, *, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')[源代码]#

从行或列中删除指定的标签。

通过指定标签名称和相应的轴,或直接指定索引或列名称来删除行或列。在使用多级索引时,可以通过指定级别来删除不同级别的标签。有关现在未使用的级别的更多信息,请参阅用户指南

参数:
labels单个标签或标签的可迭代对象

要删除的索引或列标签。元组将被用作单个标签,而不是被视为可迭代对象。

axis{0 或 ‘index’, 1 或 ‘columns’}, 默认为 0

是要从索引(0 或 ‘index’)删除标签,还是从列(1 或 ‘columns’)删除标签。

index单个标签或标签的可迭代对象

指定轴的替代方法(labels, axis=0 等同于 index=labels)。

columns单个标签或标签的可迭代对象

指定轴的替代方法(labels, axis=1 等同于 columns=labels)。

levelint 或级别名称,可选

对于 MultiIndex,将从中删除标签的级别。

inplacebool, default False

如果为 False,则返回副本。否则,原地执行操作并返回 None。

errors{‘ignore’, ‘raise’}, 默认 ‘raise’

如果为 ‘ignore’,则抑制错误,并且只删除存在的标签。

返回:
DataFrame 或 None

返回已删除指定索引或列标签的 DataFrame 或 None。如果 inplace=True,则返回 None。

引发:
KeyError

如果所选轴中的任何标签未找到。

另请参阅

DataFrame.loc

用于按标签进行选择的基于标签位置的索引器。

DataFrame.dropna

返回 DataFrame,其中在给定轴上缺失(全部或任何)数据的标签将被省略。

DataFrame.drop_duplicates

返回删除重复行的 DataFrame,可以选择仅考虑某些列。

Series.drop

返回删除指定索引标签的 Series。

示例

>>> df = pd.DataFrame(np.arange(12).reshape(3, 4), columns=["A", "B", "C", "D"])
>>> df
   A  B   C   D
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11

删除列

>>> df.drop(["B", "C"], axis=1)
   A   D
0  0   3
1  4   7
2  8  11
>>> df.drop(columns=["B", "C"])
   A   D
0  0   3
1  4   7
2  8  11

按索引删除行

>>> df.drop([0, 1])
   A  B   C   D
2  8  9  10  11

删除 MultiIndex DataFrame 的列和/或行

>>> midx = pd.MultiIndex(
...     levels=[["llama", "cow", "falcon"], ["speed", "weight", "length"]],
...     codes=[[0, 0, 0, 1, 1, 1, 2, 2, 2], [0, 1, 2, 0, 1, 2, 0, 1, 2]],
... )
>>> df = pd.DataFrame(
...     index=midx,
...     columns=["big", "small"],
...     data=[
...         [45, 30],
...         [200, 100],
...         [1.5, 1],
...         [30, 20],
...         [250, 150],
...         [1.5, 0.8],
...         [320, 250],
...         [1, 0.8],
...         [0.3, 0.2],
...     ],
... )
>>> df
                big     small
llama   speed   45.0    30.0
        weight  200.0   100.0
        length  1.5     1.0
cow     speed   30.0    20.0
        weight  250.0   150.0
        length  1.5     0.8
falcon  speed   320.0   250.0
        weight  1.0     0.8
        length  0.3     0.2

从 MultiIndex DataFrame 中删除特定的索引组合,例如,删除组合 'falcon''weight',这只删除相应的行

>>> df.drop(index=("falcon", "weight"))
                big     small
llama   speed   45.0    30.0
        weight  200.0   100.0
        length  1.5     1.0
cow     speed   30.0    20.0
        weight  250.0   150.0
        length  1.5     0.8
falcon  speed   320.0   250.0
        length  0.3     0.2
>>> df.drop(index="cow", columns="small")
                big
llama   speed   45.0
        weight  200.0
        length  1.5
falcon  speed   320.0
        weight  1.0
        length  0.3
>>> df.drop(index="length", level=1)
                big     small
llama   speed   45.0    30.0
        weight  200.0   100.0
cow     speed   30.0    20.0
        weight  250.0   150.0
falcon  speed   320.0   250.0
        weight  1.0     0.8