春风十里不如一起 2019-03-02 23:21:47 上节,我们讲了 Pandas 基本的数据加载与检索,这节我们讲讲如何进行数据比较。 Pandas系列对象在 Pandas 中我们获取指定列的数据有多种方式:
为了更好地理解它是如何工作的,我们先来创建一个序列(Series): 这个序列可以包含任何类型的数据,或者混合类型。下面我们创建一个 string 类型的数据: 在Pandas中创建DataFrame我们可以通过多样的 Series 来创建 DataFrame。这里,我们通过上面两个序列创建: 我们通过多重列表也可以达到同样的效果: 也可以设置标签: 这样我们就可以通过标签来检索数据了: 我们跳过 column 关键字,直接指定列名: Pandas DataFrame方法¶我们前面提到,DataFrame中每一列都是一个 Series 对象: 使用 head 调用前面几条记录: Pandas Series 和 DataFrames 都有其他的方法使计算简单化。例如,我们使用 pandas.Series.mean 方法计算均值: 修改 axis 关键字参数求每一行每一列的 mean 值。axis 默认为 0,并像上面的例子那样,计算每一列的方差 mean。我们也可以设置为 1 来计算每一行的方差。注意,那样的话将只计算每行数值的方差: 这里有一些 Series 和 DataFrames 的方法:
我们通过 corr 方法来看一下每一列 score 的相关系数。例如,这能告诉我们是最近发布游戏评价更高(release_year),还是年度发布游戏得分更高(release_month)。 可以看到,我们的数值列与 score 的相关系数,意味着发布时间与评分并非线性相关的。 Pandas中的DataFrame Math我们可以在 Series 和 DataFrame 执行数学操作。例如,将每一个 score 值除以 2,将原来 0~10 的缩小成 0~5: Pandas中的Boolean Indexing如前所述,reviews 数据集中 score 列的均值为 7。我们想要获取平均分以上的数据该怎么办呢?可以先做比较,生成布尔值标志比较的结果。例如查看 score 是否大于 7: 一旦有了比较值,就能选择 DataFrame 中比较值为 True 的行: 我们也可使用多个条件来过滤,比如我们想找出在 Xbox One 平台上评分大于 7 分的数据,可以这样做:
Pandas Plotting现在,我们知道怎么过滤数据了。我们还可以创建 plots 来观察 Xbox One 与 PlayStation 4 的分布对比情况,这将有助于我们了解哪款终端更适合游戏。我们使用柱状图(histogram)来展示不同的分数范围,能告诉我们哪款终端有更高的评价。 pandas.DataFrame.plot 方法默认绘制线性图形,我们得通过 kind="hist"关键之来绘制柱状图。 通过以下几个步骤:
类似的,我们可以绘制针对 PS4 的图形: 可以看到 PlayStation 4 比 Xbox One 有更高的评分。 查看 Xbox One 中评分大于 7 分的分布情况: (完) #python #pandas |
|