提交 9e36a414 编写于 作者: W wizardforcel

ch5

上级 fdf76a94
# 五、表格
> 原文:[Tables](https://github.com/data-8/textbook/tree/gh-pages/chapters/05)
> 译者:[飞龙](https://github.com/wizardforcel)
> 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
> 自豪地采用[谷歌翻译](https://translate.google.cn/)
表格是表示数据集的基本对象类型。 表格可以用两种方式查看:
+ 具名列的序列,每列都描述数据集中所有条目的一个方面,或者
......@@ -321,7 +330,7 @@ minard.drop('Longitude', 'Latitude', 'Direction')
| Orscha | 20000 | 13.79% |
| Moiodexno | 12000 | 8.28% |
`select ``drop`都不修改原始表格。 相反,他们创建了共享相同数据的新小型表格。 保留的原始表格是实用的! 可以生成多个不同的表格,只考虑某些列,而不用担心会互相影响。
`select ``drop`都不修改原始表格。 相反,他们创建了共享相同数据的新小型表格。 保留的原始表格是实用的! 可以生成多个不同的表格,只考虑某些列,而不用担心会互相影响。
```
minard
......@@ -737,7 +746,7 @@ nba.where('TEAM', 'Denver Nuggets')
### 多个属性
通过重复使用`where`可以访问具有多个指定特征的行。 例如,这是一种方法,提取薪水超过一千五百万美元的所有控球后卫。
通过重复使用`where`可以访问具有多个指定特征的行。 例如,这是一种方法,提取薪水超过一千五百万美元的所有控球后卫。
```py
nba.where('POSITION', 'PG').where('SALARY', are.above(15))
......@@ -1229,3 +1238,104 @@ array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100])
```
对于任何特定年龄,我们都可以通过将女性人数除以男性人数,获的女性:男性性别比例。 为了一步完成它,我们可以使用列来提取女性数量的数组,和相应的男性数量的数组,然后简单地将一个数组除以另一个数组。 逐元素相除将为所有年份创建性别比例的数组。
```py
ratios = Table().with_columns(
'AGE', females.column('AGE'),
'2014 F:M RATIO', females.column('2014')/males.column('2014')
)
ratios
```
| AGE | 2014 F:M RATIO |
| --- | --- |
| 0 | 0.955019 |
| 1 | 0.956884 |
| 2 | 0.956672 |
| 3 | 0.955058 |
| 4 | 0.959248 |
| 5 | 0.959998 |
| 6 | 0.959172 |
| 7 | 0.957445 |
| 8 | 0.957099 |
| 9 | 0.958511 |
(省略了 91 行)
从输出中可以看出,九岁以下儿童的比例都在 0.96 左右。 当男女比例小于 1 时,女性比男性少。 因此,我们所看到的是,在 0~9 岁的年龄段中,女孩比男孩少。此外,在每个年龄中,每 100 个男孩大约对应 96 个女孩。
那么人口中女性的整体比例为什么高于男性呢?
当我们检查年龄的另一端时,会发现一些非同寻常的事情。 以下是 75 岁以上的男女比例。
```py
ratios.where('AGE', are.above(75)).show()
```
| AGE | 2014 F:M RATIO |
| --- | --- |
| 76 | 1.23487 |
| 77 | 1.25797 |
| 78 | 1.28244 |
| 79 | 1.31627 |
| 80 | 1.34138 |
| 81 | 1.37967 |
| 82 | 1.41932 |
| 83 | 1.46552 |
| 84 | 1.52048 |
| 85 | 1.5756 |
| 86 | 1.65096 |
| 87 | 1.72172 |
| 88 | 1.81223 |
| 89 | 1.91837 |
| 90 | 2.01263 |
| 91 | 2.09488 |
| 92 | 2.2299 |
| 93 | 2.33359 |
| 94 | 2.52285 |
| 95 | 2.67253 |
| 96 | 2.87998 |
| 97 | 3.09104 |
| 98 | 3.41826 |
| 99 | 3.63278 |
| 100 | 4.25966 |
不仅所有这些比例大于 1,在所有这些年龄段中,女性比男性多,其中许多比例大于 1。
+ 在 89 岁和 90 岁中,比例接近 2,这意味着 2014 年这些年龄的女性约为男性的两倍。
+ 在 98 岁和 99 岁中,女性约为男性的 3.5 至 4 倍。
如果你想知道有多少高龄的人,你可以使用 Python 来发现:
```py
males.where('AGE', are.between(98, 100))
```
| SEX | AGE | 2014 |
| --- | --- | --- |
| 1 | 98 | 13518 |
| 1 | 99 | 8951 |
```
females.where('AGE', are.between(98, 100))
```
| SEX | AGE | 2014 |
| --- | --- | --- |
| 2 | 98 | 46208 |
| 2 | 99 | 32517 |
下图展示了年龄相关的性别比率。 蓝色曲线显示 2014 年的比例与年龄。
从 0 岁到 60 岁,这个比例差不多是 1(表示男性和女性差不多相等),但从 65 岁开始,比例开始急剧上升(女性多于男性)。
美国女性人数多于男性,部分原因是老年妇女的显着的性别不平衡。
```py
ratios.plot('AGE')
```
![](img/5-1.png)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册