pandas 每一列相加_Python数据分析——Pandas 教程(上)
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 教程(上)相关推荐
- pandas重新设置列索引_python数据分析包Pandas(一)
pandas是一个python包,提供快速,灵活和富有表现力的数据结构,旨在使"关系"或"标记"数据的使用既简单又直观. pandas的两个主要数据结构Seri ...
- numpy列相加_Python数据分析入门:NumPy基础:数组与向量化计算
本章重点内容: 1.NumPy ndarray:多维数组对象 1)生成ndarry 2)ndarray的数据类型 3)NumPy数据算术 4)基础索引与切片 5)布尔索引 6)数组转置和换轴 2.通用 ...
- pandas 每一列相加_Python3 numpy amp; pandas 学习笔记
写在前面 在用python做一些ML和DL的工作前,先看莫烦大佬的视频学习一下numpy和pandas这两个数据处理包,学习中记了一些笔记,便于自己日后查阅,同时发布到知乎希望能够帮助到其他小伙伴! ...
- pythonpandas分析数据_python 数据分析--pandas
接下来pandas介绍中将学习到如下8块内容: 1.数据结构简介:DataFrame和Series 2.数据索引index 3.利用pandas查询数据 4.利用pandas的DataFrames进行 ...
- python nums函数获取结果记录集有多少行记录_Python数据分析——Pandas数据结构和操作...
Pandas是什么? 1.一个强大的分析 结构化数据 的工具集 2.基础是NumPy,提供了 高性能矩阵 的运算 3.应用在数学挖掘,数据分析.比如,学生成绩分析,股票数据分析等 4.提供数据清洗功能 ...
- python 数据分析模块_Python数据分析pandas模块用法实例详解
本文实例讲述了Python数据分析pandas模块用法.分享给大家供大家参考,具体如下: pandas pandas10分钟入门,可以查看官网:10 minutes to pandas 也可以查看更复 ...
- pandas pivot 计算占比_数据分析Pandas 基础(二)
推荐阅读:数据分析--Pandas 基础(一) 上一节课介绍了 Pandas 的基本用法,这一章节我们通过对 "泰坦尼克号" 幸存者进行数据分析,来进一步的学习 pandas. t ...
- python 保留顺序去重_Python数据分析入门教程(二):数据预处理
作者 | CDA数据分析师 从菜市场买来的菜,总有一些不太好的,所以把菜买回来以后要先做一遍预处理,把那些不太好的部分扔掉.现实中大部分的数据都类似于菜市场的菜品,拿到以后都要先做一次预处理. 常见的 ...
- python 40位的数减个位数_Python数据分析入门教程(五):数据运算
作者 | CDA数据分析师 进行到这一步就可以算是开始正式的烹饪了,在这部分之前的数据操作部分我们列举了一些不同维度的分析指标,这一章我们主要看看这些指标都是怎么计算出来的. 一.算术运算 算术运算就 ...
最新文章
- 从微盟36小时故障,谈谈数据安全这点事
- HDU 4352 数位dp + LIS(nlogn) + 状态压缩
- Oracle关于TX锁的一个有趣的问题
- 第一、第二、第三范式之间的理解和比较(转载)
- 基于面向对象的图片轮播(js原生代码)
- TIGK监控平台介绍
- 9050 端口 linux 进程,Linux中查看某个端口占用情况
- 60. cache
- 家用计算机选购,家用电脑该如何选择?什么配置比较好?看完这篇文章你就懂了...
- mkfs 格式化分区并创建文件系统
- de4dot 反混淆工具使用
- 什么是HTML5的媒体查询功能
- S/MIME电子邮件签名证书
- php输出次方,php如何实现数值的整数次方(代码实例)
- 分布式 - ElasticSearch解决大数据量检索难题
- 这8大技术趋势,将塑造未来科技行业格局
- python二级真题 d[i] = d.get(i,0)+1
- 切图工具GraphicsMagick安装
- 基于SSM的文书处理及档案管理系统 java毕业设计
- java 计算星座_Java根据出生日期计算星座
热门文章
- 计算机互联网行业高校,9家互联网巨头最青睐的重点大学汇总,网友:比各种排名强太多了...
- 微博取关列表怎么看_微表情心理学:教你怎么从手的动作,去看他人真实的内心想法...
- c语言意义y x 8.0,C语言符号意义(8页)-原创力文档
- 企鹅java游戏下载安装_企鹅企鹅生活安卓版游戏下载|企鹅企鹅生活手游下载v1.6.1-乐游网安卓下载...
- time函数python_Python连载6-time包函数简介
- java web 树形管理_java web 后台树形菜单排序
- 京东java社招面试6_2020最新京东java面试题分享,京东社招
- 集训队脱单大法:这是一道只能由学姐我自己出数据的水题(牛客竞赛)
- rpm mysql java 驱动_Linux下安装MySQL(rpm方式)
- 【论文阅读】Learning Traffic as Images: A Deep Convolutional ... [将交通作为图像学习: 用于大规模交通网络速度预测的深度卷积神经网络](2)