提交 7c2c09a9 编写于 作者: W wizardforcel

ch7.

上级 33938bb2
......@@ -1063,3 +1063,62 @@ rated.with_column('$/Star', rated.column('Price') / rated.column('Stars')).sort(
| chocolate | 6.55 | 3.5 | 1.87143 |
| strawberry | 5.25 | 2.5 | 2.1 |
虽然草莓在这三种口味中评分最低,但是这个标准下草莓更加便宜,因为每颗星星的花费并不高。
警告。顺序很重要。由于`join`中的第二个表用于扩充第一个表,所以重要的是,第一个表中的每一行在第二个表中只有一个匹配的行。如果第一个表中的某一行在第二个表中没有匹配项,则信息可能丢失。如果第一个表中的某一行在第二个表中有多个匹配项,那么`join`将只选择一个,这也是一种信息丢失。
我们可以在下面的例子中看到它,它试图通过相同的两列连接相同的两个表格,但是以另一种顺序。这种连接是没有意义的:它试图用价格来扩展每种风味的评分,但是根据`cones`表,每种风味都有一个以上的圆筒(和价格)。结果是两个圆筒消失了。`join`方法仅仅在`cones`寻找对应`chocolate`的第一行,而忽略其他行。
```py
ratings.join('Kind', cones, 'Flavor')
```
| Kind | Stars | Price |
| --- | --- | --- |
| chocolate | 3.5 | 6.55 |
| strawberry | 2.5 | 3.55 |
| vanilla | 4 | 4.75 |
假设有个冰淇淋的评分表,我们已经求出了每种风味的平均评分。
```py
reviews = Table().with_columns(
'Flavor', make_array('vanilla', 'chocolate', 'vanilla', 'chocolate'),
'Stars', make_array(5, 3, 5, 4)
)
reviews
```
| Flavor | Stars |
| --- | --- |
| vanilla | 5 |
| chocolate | 3 |
| vanilla | 5 |
| chocolate | 4 |
```py
average_review = reviews.group('Flavor', np.average)
average_review
```
| Flavor | Stars average |
| --- | --- |
| chocolate | 3.5 |
| vanilla | 5 |
我们可以连接`cones ``average_review`,通过提供用于连接的列标签。
```py
cones.join('Flavor', average_review, 'Flavor')
```
| Flavor | Price | Stars average |
| --- | --- | --- |
| chocolate | 6.55 | 3.5 |
| chocolate | 5.75 | 3.5 |
| vanilla | 4.75 | 5 |
注意草莓圆筒是如何消失的。 没有草莓圆筒的评价,所以没有草莓的行可以连接的东西。 这可能是一个问题,也可能不是 - 这取决于我们试图使用连接表执行的分析。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册