标签:Python与Excel,pandas
对于Excel来说,删除行是一项常见任务。本文将学习一些从数据框架中删除行的技术。
准备数据框架
我们将使用前面系列中用过的“用户.xlsx”来演示删除行。
图1
注意上面代码中的index_col=0?如果我们将该参数留空,则索引将是基于0的索引。通过指定index_col=0,我们要求pandas使用第一列(用户姓名)作为索引。
使用.drop()方法删除行
如果要从数据框架中删除第三行(Harry Porter),pandas提供了一个方便的方法.drop()来删除行。drop()方法的重要参数如下所示,注意,还有其他参数,但这里仅介绍以下内容:
- label:单个标签或标签列表,可以是行标签或列标签。
- axis:默认值为0,表示索引(即行)。如果设置为1,则表示列。
- inplace:告诉pandas是否应该覆盖原始数据框架。
按名称删除行
图2
我们跳过了参数axis,这意味着将其保留为默认值0或行。因此,我们正在删除索引值为“Harry Porter”的行。还要注意.drop()方法还返回结果数据框架。现在是有趣的部分,让我们看看数据框架df,它并没有改变!这是因为我们忽略了参数inplace。
图3
如果要覆盖原始数据框架df,使用以下2种方法:
- 将结果数据框架赋值回原始df
- 在drop()方法内设置place=True
图4
按位置删除行
我们还可以使用行(索引)位置删除行。如果要删除第1行和第3行,它们是“Forrest Gump”和”Harry Porter”。在结果数据框架中,我们应该只看到Mary Jane和Jean Grey。
图5
使用布尔索引删除行
布尔索引基本上是一个布尔值列表(True或False)。我们可以使用布尔索引方便地筛选行,这里我们还可以使用它方便地删除行。这次我们将从数据框架中删除带有“Jean Grey”的行,并将结果赋值到新的数据框架。
图6