美文网首页
DataFrame按索引删除行、列

DataFrame按索引删除行、列

作者: YingWenNiCheng | 来源:发表于2018-08-23 15:54 被阅读0次

我们先来看看DataFrame.drop的帮助文档:

Help on function drop in module pandas.core.frame:

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

Drop specified labels from rows or columns. Remove rows or columns by specifying label names and corresponding axis, or by specifying directly index or column names. When using a multi-index, labels on different levels can be removed by specifying the level.

Parameters ----------

labels : single label or list-like Index or column labels to drop. axis : {0 or 'index', 1 or 'columns'}, default 0 Whether to drop labels from the index (0 or 'index') or columns (1 or 'columns').

index, columns : single label or list-like Alternative to specifying axis (``labels, axis=1`` is equivalent to ``columns=labels``).

      ..versionadded::0.21.0

level : int or level name, optional For MultiIndex, level from which the labels will be removed.

inplace : bool, default False If True, do operation inplace and return None.

errors : {'ignore', 'raise'}, default 'raise' If 'ignore', suppress error and only existing labels are dropped.

Returns ------- dropped : pandas.DataFrame

先创建一个DataFrame对象,为方便演示,我创建了一个索引既有时间,也有其他类型的索引。

    In[1]: import pandas as pd

    In[2]: df = pd.DataFrame([11, 12, 13, 14, 15, 16, 17], index = [0,  1,  2, '2018-01-01',  '2018-01-02', 'a', 'b'], columns = ['V'])

    In[3]: print(df)

    Out[3]:

                V
    0           11
    1           12
    2           13
    2018-01-01  14
    2018-01-02  15
    a           16
    b           17

通过帮助文档我们简单了解到一个重要参数inplace=False,这个参数控制着DataFrame.drop的操作是在原DataFrame删除还是不在原DataFrame上删除,默认不在原DataFrame上操作。

labels参数

DataFrame.drop()中的参数labels是要删除的行或者列的名字,删除行还是列由参数axis控制,axis默认为0即按行删除,要想删除列只需令axis=1。

    In[4]: df.drop([2,'2018-01-01','a'])
    Out[4]: 
                       V
      0                11
      1                12
      2018-01-02       15
      b                17

如果要删除列‘V’,只需如下操作:

    In[5]: df.drop(['V'],axis=1)
    Out[5]: 
      0
      1
      2
      2018-01-01
      2018-01-02
      a
      b

index参数

对于参数index,这个参数只能传入行的名字即它是专为按行删除设置的,axis的值不影响index,axis的值只在给labels传入参数时起作用。

    In[6]: df.drop(index = 'a',axis = 1)
    Out[6]:
                     V
      0             11
      1             12
      2             13
      2018-01-01    14
      2018-01-02    15
      b             17

columns参数的用法与index的用法是类似的。

level参数目前我还没用过,用到了再说了。

errors参数控制着当labels接收到没有的行名或者列名时,程序应该执行的操作。

errors='raise'会让程序在labels接收到没有的行名或者列名时抛出错误导致程序停止运行,errors='ignore'会忽略没有的行名或者列名,只对存在的行名或者列名进行操作。
想要了解更加详细信息,自己在python中用help(pd.DataFrame.drop)或者参阅:DataFrame.drop

相关文章

  • Python Pandas 依据属性值删除dataframe的行

    之前写过,依据索引/下标删除DataFrame的行或者列,参见pandas dataframe 删除行 drop ...

  • DataFrame按索引删除行、列

    我们先来看看DataFrame.drop的帮助文档: 先创建一个DataFrame对象,为方便演示,我创建了一个索...

  • pandas DataFrame

    DataFrame是二维数组,是Series容器。DataFrame既有行索引,也有列索引。行索引,即横向索引,i...

  • pandas学习-5

    Pandas数据结构Dataframe:索引 Dataframe既有行索引也有列索引,可以被看做由Series组成...

  • 2.6 数据结构Dataframe:索引

    【课程2.6】 Pandas数据结构Dataframe:索引Dataframe既有行索引也有列索引,可以被看做由...

  • Pandas数据结构之DataFrame常见操作

    提取、添加、删除列 DataFrame 就像带索引的 Series 字典,提取、设置、删除列的操作与字典类似: 删...

  • pandas数据结构

    pandas数据结构 Series创建赋值字典创建数组运算 DataFrame创建索引列索引行索引列赋值属性 索引...

  • Pandas数据操作

    Pandas数据操作 Series索引 行索引 切片索引 不连续索引 布尔索引 DataFrame索引 列索引 不...

  • DataFrame

    DataFrame 表示矩阵数据表,有行索引和列索引。 构建方式 对于大型 DataFrame,head 方法只选...

  • 【函数学习】pandas.DataFrame.loc&iloc

    DataFrame.loc[ 行索引名称或条件 , 列索引名称 ] # 闭区间(含最后一个值) DataFrame...

网友评论

      本文标题:DataFrame按索引删除行、列

      本文链接:https://www.haomeiwen.com/subject/jfueiftx.html