pandas dataframe column_Python数据分析——Pandas 教程(下)

Python数据分析——Pandas 教程(上)

上节,我们讲了 Pandas 基本的数据加载与检索,这节我们讲讲如何进行数据比较。

Pandas系列对象

在 Pandas 中我们获取指定列的数据有多种方式:

  • reviews.iloc[:, 1]:获取第二列的数据
  • reviews.loc[:, "score_phrase"]:获取指定标签列的数据
  • reviews["score_phrase"]:只需要指定列名
8b8a2c369af04374bc08acfb0084cf6e.png

为了更好地理解它是如何工作的,我们先来创建一个序列(Series):

950541f1d8d6dd49800629988f49ec04.png

这个序列可以包含任何类型的数据,或者混合类型。下面我们创建一个 string 类型的数据:

d1bd7ac641aa7e6eef8029106674dd69.png

在Pandas中创建DataFrame

我们可以通过多样的 Series 来创建 DataFrame。这里,我们通过上面两个序列创建:

21d38acbd1af4c87ee9a99d9921583f9.png

我们通过多重列表也可以达到同样的效果:

3ac961a0a982a27fa8bab95608b2a52a.png

也可以设置标签:

d637d0804855b15bb3394ef06fb67bc7.png

这样我们就可以通过标签来检索数据了:

e204e5c3f35a155f1ca0d2656e988025.png

我们跳过 column 关键字,直接指定列名:

0c9c4b3f3593515b26aeb7e263fd5b9c.png

Pandas DataFrame方法¶

我们前面提到,DataFrame中每一列都是一个 Series 对象:

65aff130029044f88c64fe15ca95c119

使用 head 调用前面几条记录:

1a00796d9bdafaf4a2814cebb74755ee.png

Pandas Series 和 DataFrames 都有其他的方法使计算简单化。例如,我们使用 pandas.Series.mean 方法计算均值:

b4fb8d94ff6db6baa7c8d29d27149e3f.png

修改 axis 关键字参数求每一行每一列的 mean 值。axis 默认为 0,并像上面的例子那样,计算每一列的方差 mean。我们也可以设置为 1 来计算每一行的方差。注意,那样的话将只计算每行数值的方差:

8b2b58154550ada47a387fa3a4a1a905.png

这里有一些 Series 和 DataFrames 的方法:

  • pandas.DataFrame.corr:找出 DataFrame 所有列之间的相关系数
  • pandas.DataFrame.count:统计 DataFrame 每一列非空值的个数
  • pandas.DataFrame.max:找出每一列的最大值
  • pandas.DataFrame.min:找出每一列的最小值
  • pandas.DataFrame.median:找出每一列的中位数
  • pandas.DataFrame.std:找出每一列的标准误差

我们通过 corr 方法来看一下每一列 score 的相关系数。例如,这能告诉我们是最近发布游戏评价更高(release_year),还是年度发布游戏得分更高(release_month)。

ce1585bb5f09d7ba6a55c127ba6aaa84.png

可以看到,我们的数值列与 score 的相关系数,意味着发布时间与评分并非线性相关的。

Pandas中的DataFrame Math

我们可以在 Series 和 DataFrame 执行数学操作。例如,将每一个 score 值除以 2,将原来 0~10 的缩小成 0~5:

8a07da35182825ee03797246f4585911.png

Pandas中的Boolean Indexing

如前所述,reviews 数据集中 score 列的均值为 7。我们想要获取平均分以上的数据该怎么办呢?可以先做比较,生成布尔值标志比较的结果。例如查看 score 是否大于 7:

d3e0bc1560b31a0e007fec88220571e2.png

一旦有了比较值,就能选择 DataFrame 中比较值为 True 的行:

4fe491a3b1b24188f1c278a9b08ae632.png

我们也可使用多个条件来过滤,比如我们想找出在 Xbox One 平台上评分大于 7 分的数据,可以这样做:

  • 检查 score 是否大于 7
  • 检查 platform 平台是否为 Xbox One
4f2b96df372197ce3adefdb76ad0e817.png

Pandas Plotting

现在,我们知道怎么过滤数据了。我们还可以创建 plots 来观察 Xbox One 与 PlayStation 4 的分布对比情况,这将有助于我们了解哪款终端更适合游戏。我们使用柱状图(histogram)来展示不同的分数范围,能告诉我们哪款终端有更高的评价。

pandas.DataFrame.plot 方法默认绘制线性图形,我们得通过 kind="hist"关键之来绘制柱状图。

通过以下几个步骤:

  • 调用 %matplotlib inline 在 Jupyter Notebook 中建立图形
  • 过滤数据,只保留 Xbox One 数据
  • 绘制 score 列
0e47d7a3425a6a8ee054871bc8b2d001.png

类似的,我们可以绘制针对 PS4 的图形:

a88071c5a089352a2edee0f69c52c1fc.png

可以看到 PlayStation 4 比 Xbox One 有更高的评分。

查看 Xbox One 中评分大于 7 分的分布情况:

cb86aef1765a05dcc8c3d12a0ecd1273.png

(完)

#python #pandas

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值