建设银行网站电脑版,做移动端网站设计,网页设计基础知识点,温州vi设计公司Python 在数据分析领域里是一门非常强大的语言#xff0c;在数据分析方面有着出色的生态系统。Pandas 包就是其中之一#xff0c;它的主要特点是导入和分析数据非常的容易#xff0c;Pandas 类似 Numpy、Matplotlib#xff0c;提供了单一且方便的方式来处理数据分析和形象化…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.0genre 游戏种类editors_choice 如果游戏并非通过选择打分的为 N否则为 Yrelease_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 行默认值为 5pandas.DataFrame.tail打印 DataFrame 的后 N 行默认值为 5reviews.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学习它更多的特性。