前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python基础 | 为什么需要Pandas的DataFrame类型

Python基础 | 为什么需要Pandas的DataFrame类型

作者头像
算法与编程之美
发布2019-08-15 17:39:17
1.2K0
发布2019-08-15 17:39:17
举报

Pandas是我们平时进行数据分析时,经常会使用到的一个库,提供了非常丰富的数据类型和方法,以简化对数据的处理和分析。前面几篇文章已经介绍了Python自带的list()以及强大的numpy提供的ndarray类型,这些数据类型还不够强大吗?为什么还需要新的数据类型呢?

在学习新的知识的时候,一方面需要了解这个新的概念是什么,另外还需要了解为什么需要学习这个新的知识,以往的知识不能解决问题吗?不能满足需要吗?只有搞明白了为什么的问题,才能灵活的应用新的知识和技能解决问题。

1. 问题描述

假设现在有这样的一个需求,需要在某电影网站上采集基本的电影数据,字段有电影名称、电影URL连接地址以及电影的评分三个字段。试想一下应该选择什么样的数据类型来存储这些数据?

首先大家可能想到的是list()类型,很快就会写出下面的代码:

代码语言:javascript
复制
videos = []
item = ['哪吒之魔童降世', 'http://www.videos.com', '9.9']
videos.append(item)

# [['哪吒之魔童降世', 'http://www.videos.com', '9.9']]

虽然能够存储这些数据,但是想要基于这些数据进行某些查找和修改操作,将会变得非常麻烦,如按评分排序、超找包含特定关键字的记录等。对于numpy.ndarray()来说,也是面临同样的问题。

上面介绍的这种形式的数据,是一种常见的需要存储和进行处理的一些数据,但是list()和numpy.ndarray()都无法很好的处理这些数据,因此需要一种新的、更加方便的数据类型,而这种数据类型就是pandas给我们提供的DataFrame类型。

2. Pandas的DataFrame类型

Pandas是Python开发中常用的第三方库,DataFrame是其中最常用的数据类型,是一种存放数据的容器。而在python中存放数据常见的有list()以及numpy中功能更加强大的numpy.ndarray(),但是为什么还要使用DataFrame呢?

首先编写采集电影基本数据的代码:

代码语言:javascript
复制
df = pandas.DataFrame(columns=['video_name', 'video_url', 'video_score'])
for i in range(1,112):
    url = 'https://www.meiju.net/search.php?page={}&searchtype=5&tid=2'.format(i)
    soup = BeautifulSoup(requests.get(url).content, 'html.parser')
    for item in soup.select('div.hy-video-list li > a'):
        row = edict()
        row.video_name = item['title']
        row.video_url = item['href']
        
        score_tag = item.select_one('span.score')
        if score_tag is not None:
            row.video_score = score_tag.text
        
        df = df.append(row, ignore_index=True)

有了DataFrame这个类型之后,我们可以做什么呢?

可以按照评分对数据进行快速排序:

代码语言:javascript
复制
df.sort_values('video_score', ascending=False)

除了上面介绍的之外,还有很多更加强大的功能和方法,后续文章将根据一些案例持续进行介绍。

3. 结语

本文介绍了用Pandas的DataFrame类型来存储电影数据集的数据,并介绍了DataFrame提供的非常方便的数据操作。

where2go 团队


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档