分享

对比Excel,Python pandas删除数据框架中的列

 hercules028 2022-03-17

删除列也是Excel中的常用操作之一,可以通过功能区或者快捷菜单中的命令或者快捷键来实现。上一篇文章,我们讲解了Python pandas删除数据框架中行的一些方法,删除列与之类似。然而,这里想介绍一些新方法。取决于实际情况,正确地使用一种方法可能比另一种更好。

准备数据框架

创建用于演示删除列的数据框架,仍然使用前面给出的“用户.xlsx”中的数据。

Image

1

.drop()方法

与删除行类似,我们也可以使用.drop()删除列。唯一的区别是,在该方法中,我们需要指定参数axis=1。下面是.drop()方法的一些说明:

  • 要删除单列:传入列名(字符串)。

  • 删除多列:传入要删除的列的名称列表。

  • 如果要覆盖原始数据框架,则要包含参数inplace=True

Image

2

del方法

delPython中的一个关键字,可用于删除对象。我们可以使用它从数据框架中删除列。

注意,当使用del时,对象被删除,因此这意味着原始数据框架也会更新以反映删除情况。

Image

3

重赋值方法

也就是方括号法,但这不是真正的删除方法,而是重新赋值操作。但是,最终结果与删除相同。

考虑我们原来的数据框架,它有5列,即:

用户姓名、国家、城市、性别、年龄

假设我们要删除国家和年龄列。实际上我们没有删除,而是创建了一个新的数据框架,其中只包含用户姓名、城市和性别,有效地“删除”了其他两列。然后,我们将新创建的数据框架赋值给原始数据框架以完成“删除操作”。注意代码中的双方括号。

df = df[[’城市’,’性别’]]

注:如果是df = df[['用户姓名’,’城市’,’性别’]]则出错,什么原因?

使用哪种方法?

三种方法,应该用哪一种?答案总是:视情况而定。下面是我用来决定使用哪种方法的一些技巧。

.drop()

  • 当有许多列,而只需要删除一些列时,效果最佳。在这种情况下,我们只需要列出要删除的列。

  • 但是,如果要覆盖原始数据框架,则需要记住应包含参数inplace=True

del

  • 当我们只需要删除12列时效果最好。这种方法是最简单、最短的代码。

  • 但是,如果需要删除多个列,则需要使用循环,这比.drop()方法更麻烦。

重赋值

  • 当数据框架只有几列时效果最好;或者数据框架有很多列,但我们只保留一些列。

  • 如果我们需要保留许多列,必须键入计划保留的所有列名称,这可能需要大量键入。

注:本文学习整理自pythoninoffice.com

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多