当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pandas.DataFrame.drop用法及代码示例


用法:

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

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

通过指定标签名称和相应的轴,或直接指定索引或列名称来删除行或列。使用multi-index 时,可以通过指定级别来移除不同级别的标签。有关现在未使用的关卡的更多信息,请参阅user guide <advanced.shown_levels>

参数

labels单标签或list-like

要删除的索引或列标签。元组将用作单个标签,而不被视为list-like。

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

是否从索引(0 或 ‘index’)或列(1 或 ‘columns’)中删除标签。

index单标签或list-like

替代指定轴(labels, axis=0 等效于 index=labels)。

columns单标签或list-like

替代指定轴(labels, axis=1 等效于 columns=labels)。

levelint 或级别名称,可选

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

inplace布尔值,默认为 False

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

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

如果‘ignore’,抑制错误并且仅删除现有标签。

返回

DataFrame 或无

没有删除索引或列标签的 DataFrame 或 None 如果 inplace=True

抛出

KeyError

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

例子

>>> 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=[['lama', '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
lama    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
lama    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
lama    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
lama    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

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.DataFrame.drop。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。