前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pandas每天一题-题目15:删除列的多种方式

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

作者头像
咋咋
发布2021-09-01 14:22:49
6440
发布2021-09-01 14:22:49
举报
文章被收录于专栏:数据大宇宙

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

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

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

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

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

如下数据:

代码语言:javascript
复制
1import pandas as pd
2import numpy as np
3
4df = pd.read_csv('chipotle.tsv',
5                 sep='\t',
6                 converters={'item_price': lambda x: float(x[1:-1])})

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

需求:各种删除列的方式

下面是答案了


方式1

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

代码语言:javascript
复制
1del df['order_id']
2df

也可以同时删除多列:

代码语言:javascript
复制
1del df['order_id'],df['quantity']
2df

点评:

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


方式2

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

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

删除多列当然也是可以:

代码语言:javascript
复制
1df.drop(['order_id','quantity'],axis=1)

点评:

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


方式3

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

代码语言:javascript
复制
1ids = df['order_id']
2del df['order_id']
3
4# …………后续对 ids 操作

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

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

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

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

点评:

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


推荐阅读:

  1. 懂Excel就能轻松入门Python数据分析包pandas(八):匹配查找
  2. pandas输出的表格竟然可以动起来?教你华而不实的python
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据大宇宙 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方式1
  • 方式2
  • 方式3
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档