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

42c61ec7a8391954028ec65cc50f25c1.png

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 关键的方面。

5efe0bf0236abad5e400d95be312462e.png

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

b71661c4997e85a77d46e151c2edbde5.png

使用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
27c13b102f387fffba4538e9bcf92ed9.png
reviews.tail(3)
6eca8711830459e47d645e0b5d9604fc.png

我们还可以通过 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 方法允许我们检索行和列的位置:

921c1192edc192f72e4b8ee352438720.png

正如我们所看到的,指定了想要的行数 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 索引很相似。

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

0f97578dfdeb4babdd9b78bbe942aa7a.png

在Pandas中使用标签来检索

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

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

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

3caadb52dc4884495cbf85ddcdcc876e.png

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

e6ee8a5a04bb8698d78ffc8ace7161e6.png

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

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

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

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

335c4fdfc02cb0888fba662ee2d2e9a8.png

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

0cd2f376a78bac7e9cc22aea9d0f91a5.png

上半部分小结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245496.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ajax刷新iframe页面,通过iframe实现简单的ajax表单提交

之前做项目都是用现成的jquery插件实现表单的校验以及ajax提交,但是今天有个简单的头像图片ajax上传,以及一个很简单的表单提交,实在不想引入一个插件了,本着代码量最小,最简单的原则,照着豆瓣照抄了一个&a…

bat文件设置dns服务器,.bat文件设置IP、DNS

这几天遇到个烦心事,每次开机之后都要去手动去设置一下IP地址,一大串的数字还是有点麻烦,于是就想写个批处理文件设置IP注意:在DOS下设置IP时需要管理员权限运行1.查看机子设置IP需要用到的名字名字是Ethernet2.查看机子在DOS下设…

cv2 画多边形不填充_你不知道的4种方法:python方法绘制扇形

1 说明:1.1 是问答中的我的一个回答。1.1 因为问答中没有代码块的,所以我改为这里写文章,然后链接过去。1.2 4种方法:turtle法、OpenCV法、pygame法和matplotlib法。2 turtle法:2.1 代码:#第1步&#xff1a…

不同角色进入使用不同功能_如何在不同页面上使用不同的Joomla CSS

简介: 我们的一位用户希望其网站首页具有不同的背景。 Joomla确实提供了几种自定义单个页面的方法。本教程将向您介绍两个Joomla选项。让我们开始吧 ...我们的一位用户希望其网站首页具有不同的背景。 Joomla确实提供了几种自定义单个页面的方法。本教程将向您介绍两…

emc文件存储服务器,emc存储怎么挂在linux服务器上

emc存储怎么挂在linux服务器上 内容精选换一换安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器。例如QQ.exe。在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器。例如QQ.exe。本地磁盘映射…

如何在excel中判断某一点在某一区域内_SEM优化师常用的Excel表格函数集合

在竞价优化中如何用最短时间又高效的完成工作呢?其实是有技巧的,今天给大家分享一篇能够帮助竞价员高效快速的完成工作的一些工具,如果感觉有用就赶快收藏吧!EXCEL使用技能1. 数据透视表▲ 功能:它是excel中的一项功能…

前后端分离session_前后端分离:基于JWT用户认证分析

作者:lion1ouhttps://lion1ou.win/2017/01/18/在前后端分离开发时为什么需要用户认证呢?原因是由于HTTP协定是不储存状态的(stateless),这意味着当我们透过帐号密码验证一个使用者时,当下一个request请求时它就把刚刚的资料忘了。…

我的世界服务器开启显示坐标的指令,我的世界坐标怎么看 坐标指令

在我的世界游戏中,坐标这个问题如果玩的很6的话能够帮助我们瞬间移动,去到任何想去的地方,这时有不少玩家不禁想问了,我的世界坐标怎么看,坐标指令又是什么呢?坐标(coordinates)在数字上反映了您在主世界中…

扑克牌图片一张一张_培养孩子的数学力,不妨试试这五个扑克牌游戏

宝宝的数学认知会随着年龄的增长而逐渐增强,3-4岁的宝宝能感知和区分物体的大小、多少等量方面的特点;4-5岁的宝宝能理解数与数之间的关系;5-6岁的宝宝能够理解加和减的实际意义,并进行10以内的加减运算。而扑克牌是家中常备的娱乐…

三十二楼层选几层最好_买房楼层怎么选?建筑学家建议:一栋楼不管几层,最好避开这3层...

对于很多人买房,可以说是一生最重要的事情之一。大部分人买房都可能和自己的家人居住一生,特别是现在房价那么高的情况下,买了房如果不如意的话,想再换房可就非常难了。特别是楼层的选择,很多人都不会选择楼层&#xf…

服务器文件相对路径,服务器文件的相对路径

服务器文件的相对路径 内容精选换一换编译构建服务提供了常用的构建模板(构建环境),不同的构建模板中预装了对应构建所需工具集,MSBuild构建镜像一般预装了msbuild、nuget、.NET Frameword等常用工具。使用msbuild构建工具执行引擎、构造工程&#xff0c…

每天九点十分开始每半小时一次执行一个cron_每天通勤4小时!西咸双城生活的上班族,不简单...

在西安,你每天上班路上花费多长时间?大多数人的答案可能都在一个小时之间。然而,在西安,有一群辗转于西安和咸阳两座城市的上班族,他们平均每天早上六点出门,晚上八点回家,在公交、地铁、电动车…

时间设置偏移秒_零偏移有源低通滤波器,第2部分

本系列文章分为4个部分,分别讨论了:使用Sallen-Key有源滤波器时应避免的陷阱、Sallen-Key低通滤波器所建议的补救措施、接近零偏移的Chebyshev低通滤波器,以及采纳网友建议所带来的不利后果。 本系列文章的第1部分解决了使用Sallen-Key有源滤…

线程与进程的区别_Java线程和PC进程的区别

进程和线程的区别进程:资源分配的基本单位,多存在于操作系统任务中线程:资源调度的基本单位,一般存在于某个程序中JVM主内存与工作内存间具体的交互A:作用范围主内存变量B:作用范围工作内存变量lock(锁定)A…

生产管理erp系统源码_仁和ERP企业管理系统提高生产管理流程

传统的制造企业管理理念只会阻碍公司经营发展,在管理流程根本上去改变,还得从企业各部门管理思想的转变做基础,优化公司核心业务流程做标准,双向进行改革创新,将管理流程提升为企业的核心竞争力!这将是企业…

怎么把字符串变成数组_字符串哈希:从零开始的十分钟包会教程

大家吼啊!这是我下定决心写专栏以来的第二篇文章,请大家多多资瓷!!同样我们先以上次的话起头吧!恭喜你找到了这篇博客!虽然这个标题看起来非常像是nc营销号的标题但是!请相信我一次这是真的&…

岗位理解_当面试官问求职者对应聘岗位的理解情况

虽然求职是看的是岗责是否匹配自己的经历和能力,但是很多面试官还是会问这样的问题。对于求职者来说,对岗位的理解其实就是把岗位职责背一遍,但是面试官既然问了,就要说出一些其他内容来。想回答好这个问题,就要清楚面…

指针和引用的区别_浅析指针与引用

关注“杜明c”,每天进步一点点!已经时隔一个多月没有发文章了,主要是太忙了,绝不是偷懒今天给大家聊一聊指针和引用的不同之处在哪里。摘要指针的使用引用的使用二者的区别后话指针的使用在C语言中,我们怎么样在子函数…

运行catia_教程 | CATIA宏的录制及应用

首先和大家聊一聊宏。宏,英文Macro,是很多软件中都带有的功能,能够将一系列操作的过程录制下来,即将若干命令集合为一个命令,无论是CATIA还是Office软件,甚至很多游戏也有宏功能。用户基于录制的宏进行适当…

arccatalog点要素显示不完_如果你读不完显示屏说明书,至少读完这几句话吧

如果说起LED显示屏现在能够被那么多人熟知的原因,常规全彩LED显示屏绝对是不可或缺的基础,常规全彩屏有两大分类分别是户外全彩LED显示屏和室内全彩LED显示屏,这个很多人也都知道,但你知道它们的区别在哪吗?让我们力诺…