pandas每天一题-题目15:删除列的多种方式

liftword5个月前 (12-09)技术文章57

这是一个关于 pandas 从基础到进阶的练习题系列,来源于 github 上的 guipsamora/pandas_exercises 。这个项目从基础到进阶,可以检验你有多么了解 pandas。

我会挑选一些题目,并且提供比原题库更多的解决方法以及更详尽的解析

计划每天更新一期,希望各位小伙伴先自行思考,再查看答案。如果对你有帮助,记得转发推荐给你的好友!

上期文章:pandas每天一题-题目14:新增列的多种方式

后台回复"数据",可以下载本题数据集

如下数据:

import pandas as pd
import numpy as np

df = pd.read_csv('chipotle.tsv',
                 sep='\t',
                 converters={'item_price': lambda x: float(x[1:-1])})

前面章节讲解过的知识点,本文不再讲解!

需求:各种删除列的方式

下面是答案了


方式1

这是 python 删除变量的操作,同样适用于 DataFrame 删除列:

del df['order_id']
df

也可以同时删除多列:

del df['order_id'],df['quantity']
df

点评:

这种方式最大的缺点是修改了原数据


方式2

为了克服方式1的缺点(修改原数据),可以使用 drop 方法:

df.drop('order_id',axis=1)
  • 方法直接返回删除列后的新表格(DataFrame)
  • 参数 axis=1,表示删除列。axis=0,可以删除行

删除多列当然也是可以:

df.drop(['order_id','quantity'],axis=1)

点评:

  1. 不会修改原数据,适合临时操作

方式3

在方式1中,如果我们希望提出 order_id 列,然后从表格中移除,我们需要这么做:

ids = df['order_id']
del df['order_id']

# …………后续对 ids 操作

注意,你不能写 del ids,此时会把变量 ids 给删除了

此时代码出现了 "order_id" 2次。

pandas 为此提供了一个方法直接完成2个操作:

ids = df.pop('order_id')
  • pop 方法会提取指定列并返回,然后从 df 中移除这一列
  • 这与方式1一样是会修改原数据

点评:

此方法没啥大作用,不推荐使用



更多 pandas 高级应用教程,请订阅我的 pandas 专栏:


推荐阅读:

  1. "Python替代Excel Vba"系列(终):vba中调用Python
  2. Jupyter Notebook开发Python-智能提示
  3. 使用Jupyter Notebook开发Python

相关文章

跟我学Python(9)——Pycharm中的创建、保存、删除操作

上篇文章小编已经给大家介绍了Pycharm如何输出“hello world”,这篇文章小编将继续分享Pycharm的创建、保存、删除文件的常规操作。 在同一个工程下创建多个程序文件,上节我们已经在u...