Python 在数据分析领域里是一门非常强大的语言,在数据分析方面有着出色的生态系统。Pandas 包就是其中之一,它的主要特点是导入和分析数据非常的容易,Pandas 类似 Numpy、Matplotlib,提供了单一且方便的方式来处理数据分析和形象化的工作。

本文中,我们使用 Pandas 来分析 IGN(www.ign.com) 上的游戏评论数据,IGN 是一个颇受欢迎的游戏评论网站。相关数据可以从这里(https://www.kaggle.com/egrinstein/20-years-of-games)获取到,也可以通过我的 Github 获取(https://raw.githubusercontent.com/keer2345/DataAnalysisWithPython/master/myself-notebook/dataquest.io/ign.csv)。通过分析评论数据,我们将学到类似索引等 Pandas 关键的方面。

比如类似巫师3(Witcher3)这款游戏,在 PS4 上的评论会比 Xbox One 上更多吗?数据集能帮我们给出结果。

使用Pandas导入数据

首先,我们先查看数据。数据以逗号分隔符来存储,或者 csv 文件,每一行通过换行来分隔,每一列以逗号,来分隔,下面是 ign.csv 文件的前面几行:

,score_phrase,title,url,platform,score,genre,editors_choice,release_year,release_month,release_day0,Amazing,LittleBigPlanet PS Vita,/games/littlebigplanet-vita/vita-98907,PlayStation Vita,9.0,Platformer,Y,2012,9,121,Amazing,LittleBigPlanet PS Vita -- Marvel Super Hero Edition,/games/littlebigplanet-ps-vita-marvel-super-hero-edition/vita-20027059,PlayStation Vita,9.0,Platformer,Y,2012,9,122,Great,Splice: Tree of Life,/games/splice/ipad-141070,iPad,8.5,Puzzle,N,2012,9,123,Great,NHL 13,/games/nhl-13/xbox-360-128182,Xbox 360,8.5,Sports,N,2012,9,11

正如我们看到的,每一行代表游戏的一个 IGN 评论。每一列的含义如下:

  • score_phrase: IGN 评论的唯一值
  • title: 游戏名称
  • url: 通过 URL 可以看到详细评论
  • platform: 通过何种平台评论游戏(PC, PS4, etc)
  • score: 评分,从 1.0 ~ 10.0
  • genre: 游戏种类
  • editors_choice: 如果游戏并非通过选择打分的为 N,否则为 Y
  • release_year: 游戏发布年份
  • release_month: 游戏发布月份
  • release_day:游戏发布日期

数据里还有一列包含索引值,到后面深入索引数据之前我们可以忽略这一列。我们通过 Pandas DataFrame 加载数据,DataFrame 是一种处理表格数据的方式,表格数据拥有行和列,类似上面的 csv 文件。

为了读取数据,我们使用 pandas.read_csv 函数。该函数能返回 csv 文件的 DataFrame:

  • 导入 pandas 库,并习惯性的重命名为 pd,以便能以后能快速地调用它。
  • 读取 ign.csv 文件到 DataFrame,并赋值给 reviews。
import pandas as pdreviews = pd.read_csv("ign.csv")

获取完数据后,Pandas 提供了两个方法来快速打印数据:

  • pandas.DataFrame.head:打印 DataFrame 的前 N 行,默认值为 5
  • pandas.DataFrame.tail:打印 DataFrame 的后 N 行,默认值为 5
reviews.tail(3)

我们还可以通过 pandas.DataFrame.shape 属性来查看行数和列数:

reviews.shape(18625, 11)

通过结果可以看到,我们的数据有 18625 行,11 列。

Pandas 对比 Numpy 的一大优势就是 Pandas 允许我们可以有不同数据类型的列。reviews 有的类似 store 的 float 列;有的类似 score_phrase 的 string 列;有的类似 release_year 的 integer 列。

现在,让我们通过索引 reviews 来获取想要的行和列。

使用Pandas索引DataFrames

前面我们使用 head 方法来打印前 5 行数据,我们可以使用 pandas.DataFrame.iloc 来实现同样的功能。iloc 方法允许我们检索行和列的位置:

正如我们所看到的,指定了想要的行数 0:5,意思是位置从 0 行开始的 5 行,即 0, 1, 2, 3, 4。这种情况下,也可以简写为 :5。

我们使用 : 来指定列的位置,表示获取所有列。

下面是一些索引(indexing)的例子:

  • reviews.iloc[:5, :]:前5行、所有列
  • reviews.iloc[:, :]:所有数据
  • reviews.iloc[5:, 5:]:第5行和第5列之后的数据
  • reviews.iloc[:, 0]:所有行的第一列数据
  • reviews.iloc[9, :]:第10行数据

通过位置来索引与 Numpy 索引很相似。

现在,让我们移除没什么意义的第一列:

在Pandas中使用标签来检索

我们已经知道如何通过行和列的位置来检索数据,现在我们通过 DataFrame 的其他主要的方法来检索数据,就是通过航和咧的标签来检索。

Pandas 优于 Numpy 的其中一点是 Pandas 的行和列都有标签,通过列的位置当然可以检索,但是这很难跟踪哪些数字对应哪些列。我们通过 pandas.DataFrame.loc 方法来使用标签,允许我们通过标签替代位置来检索数据。

我们使用 loc 浏览前五行数据:

这个例子与 reviews.iloc[0:5, :] 看起来没有什么区别,是因为我们的行标签匹配了位置值。我们可以看到行标签在表格的左边,也可以看出来它们通过 DataFrame 索引属性访问。我们展示数据的行索引:

索引并不一定与位置匹配,比如下面的代码:

  • 获取数据的 10 ~ 20 行,并赋值为 some_reviews
  • 浏览 some_reviews 的前 5 行

可以看见,在 some_reviews 中,行索引从 10 到 20,因此,loc 标签检索的数字必须是从 10 到 20。

正如前面提到的,列标签可以很容易的找到数据,我们使用 loc 方法通过列标签替代位置索引检索数据:

我们也可以一次通过列表形式指定多个列标签:

上半部分小结

上半部分的文章,我们主要了解了 Pandas 如何加载数据,以及 Pandas 通过位置或者标签检索数据的方便快捷的特性。我们将在后面的文章继续学习 Pandas,学习它更多的特性。

pandas 每一列相加_Python数据分析——Pandas 教程(上)相关推荐

  1. pandas重新设置列索引_python数据分析包Pandas(一)

    pandas是一个python包,提供快速,灵活和富有表现力的数据结构,旨在使"关系"或"标记"数据的使用既简单又直观. pandas的两个主要数据结构Seri ...

  2. numpy列相加_Python数据分析入门:NumPy基础:数组与向量化计算

    本章重点内容: 1.NumPy ndarray:多维数组对象 1)生成ndarry 2)ndarray的数据类型 3)NumPy数据算术 4)基础索引与切片 5)布尔索引 6)数组转置和换轴 2.通用 ...

  3. pandas 每一列相加_Python3 numpy amp; pandas 学习笔记

    写在前面 在用python做一些ML和DL的工作前,先看莫烦大佬的视频学习一下numpy和pandas这两个数据处理包,学习中记了一些笔记,便于自己日后查阅,同时发布到知乎希望能够帮助到其他小伙伴! ...

  4. pythonpandas分析数据_python 数据分析--pandas

    接下来pandas介绍中将学习到如下8块内容: 1.数据结构简介:DataFrame和Series 2.数据索引index 3.利用pandas查询数据 4.利用pandas的DataFrames进行 ...

  5. python nums函数获取结果记录集有多少行记录_Python数据分析——Pandas数据结构和操作...

    Pandas是什么? 1.一个强大的分析 结构化数据 的工具集 2.基础是NumPy,提供了 高性能矩阵 的运算 3.应用在数学挖掘,数据分析.比如,学生成绩分析,股票数据分析等 4.提供数据清洗功能 ...

  6. python 数据分析模块_Python数据分析pandas模块用法实例详解

    本文实例讲述了Python数据分析pandas模块用法.分享给大家供大家参考,具体如下: pandas pandas10分钟入门,可以查看官网:10 minutes to pandas 也可以查看更复 ...

  7. pandas pivot 计算占比_数据分析Pandas 基础(二)

    推荐阅读:数据分析--Pandas 基础(一) 上一节课介绍了 Pandas 的基本用法,这一章节我们通过对 "泰坦尼克号" 幸存者进行数据分析,来进一步的学习 pandas. t ...

  8. python 保留顺序去重_Python数据分析入门教程(二):数据预处理

    作者 | CDA数据分析师 从菜市场买来的菜,总有一些不太好的,所以把菜买回来以后要先做一遍预处理,把那些不太好的部分扔掉.现实中大部分的数据都类似于菜市场的菜品,拿到以后都要先做一次预处理. 常见的 ...

  9. python 40位的数减个位数_Python数据分析入门教程(五):数据运算

    作者 | CDA数据分析师 进行到这一步就可以算是开始正式的烹饪了,在这部分之前的数据操作部分我们列举了一些不同维度的分析指标,这一章我们主要看看这些指标都是怎么计算出来的. 一.算术运算 算术运算就 ...

最新文章

  1. 从微盟36小时故障,谈谈数据安全这点事
  2. HDU 4352 数位dp + LIS(nlogn) + 状态压缩
  3. Oracle关于TX锁的一个有趣的问题
  4. 第一、第二、第三范式之间的理解和比较(转载)
  5. 基于面向对象的图片轮播(js原生代码)
  6. TIGK监控平台介绍
  7. 9050 端口 linux 进程,Linux中查看某个端口占用情况
  8. 60. cache
  9. 家用计算机选购,家用电脑该如何选择?什么配置比较好?看完这篇文章你就懂了...
  10. mkfs 格式化分区并创建文件系统
  11. de4dot 反混淆工具使用
  12. 什么是HTML5的媒体查询功能
  13. S/MIME电子邮件签名证书
  14. php输出次方,php如何实现数值的整数次方(代码实例)
  15. 分布式 - ElasticSearch解决大数据量检索难题
  16. 这8大技术趋势,将塑造未来科技行业格局
  17. python二级真题 d[i] = d.get(i,0)+1
  18. 切图工具GraphicsMagick安装
  19. 基于SSM的文书处理及档案管理系统 java毕业设计
  20. java 计算星座_Java根据出生日期计算星座

热门文章

  1. 计算机互联网行业高校,9家互联网巨头最青睐的重点大学汇总,网友:比各种排名强太多了...
  2. 微博取关列表怎么看_微表情心理学:教你怎么从手的动作,去看他人真实的内心想法...
  3. c语言意义y x 8.0,C语言符号意义(8页)-原创力文档
  4. 企鹅java游戏下载安装_企鹅企鹅生活安卓版游戏下载|企鹅企鹅生活手游下载v1.6.1-乐游网安卓下载...
  5. time函数python_Python连载6-time包函数简介
  6. java web 树形管理_java web 后台树形菜单排序
  7. 京东java社招面试6_2020最新京东java面试题分享,京东社招
  8. 集训队脱单大法:这是一道只能由学姐我自己出数据的水题(牛客竞赛)
  9. rpm mysql java 驱动_Linux下安装MySQL(rpm方式)
  10. 【论文阅读】Learning Traffic as Images: A Deep Convolutional ... [将交通作为图像学习: 用于大规模交通网络速度预测的深度卷积神经网络](2)