diff --git a/docs/10.md b/docs/10.md index 39c8622bdfadad7dd614043b27c71f2cbc3a5ac5..b4d414fc6452ca3ed792e0f46de7767b6e7ba5ef 100644 --- a/docs/10.md +++ b/docs/10.md @@ -264,7 +264,7 @@ b one 0.281746 Name: data2, dtype: float64 ``` -##通过字典或`Series`进行分组 +## 通过字典或`Series`进行分组 除数组以外,分组信息还可以其他形式存在。来看另一个示例`DataFrame`: ```python In [35]: people = pd.DataFrame(np.random.randn(5, 5), @@ -327,7 +327,7 @@ Jim 2 3 Travis 2 3 ``` -##通过函数进行分组 +## 通过函数进行分组 比起使用字典或`Series`,使用 Python 函数是一种更原生的方法定义分组映射。任何被当做分组键的函数都会在各个索引值上被调用一次,其返回值就会被用作分组名称。具体点说,以上一小节的示例`DataFrame`为例,其索引值为人的名字。你可以计算一个字符串长度的数组,更简单的方法是传入 len 函数: ```python In [44]: people.groupby(len).sum() diff --git a/docs/11.md b/docs/11.md index 4fb89eee139c749367de5b58ca2ea17b5eb8cad9..042775cfe124d3bbc1716314ddfb0ed2bd0ac1a0 100644 --- a/docs/11.md +++ b/docs/11.md @@ -1552,7 +1552,7 @@ Out[219]: 此外,也可以通过调用结果对象的 shift 方法来实现该目的,这样就不需要设置 loffset 了。 -##OHLC 重采样 +## OHLC 重采样 金融领域中有一种无所不在的时间序列聚合方式,即计算各面元的四个值:第一个值(open,开盘)、最后一个值(close,收盘)、最大值(high,最高)以及最小值(low,最低)。传入 how='ohlc'即可得到一个含有这四种聚合值的`DataFrame`。整个过程很高效,只需一次扫描即可计算出结果: ```python @@ -1564,7 +1564,7 @@ Out[220]: 2000-01-01 00:10:00 10 11 10 11 ``` -##升采样和插值 +## 升采样和插值 在将数据从低频率转换到高频率时,就不需要聚合了。我们来看一个带有一些周型数据的`DataFrame`: ```python diff --git a/docs/14.md b/docs/14.md index 49d5c064457d3c9090eb636637a9a198fc836b0f..f0faf83b11e595131e0203d8b570770fafe8973b 100644 --- a/docs/14.md +++ b/docs/14.md @@ -4,7 +4,7 @@ 案例数据集可以在 Github 仓库找到,见第一章。 -#14.1 来自 Bitly 的 USA.gov 数据 +# 14.1 来自 Bitly 的 USA.gov 数据 2011 年,URL 缩短服务 Bitly 跟美国政府网站 USA.gov 合作,提供了一份从生成.gov 或.mil 短链接的用户那里收集来的匿名数据。在 2011 年,除实时数据之外,还可以下载文本文件形式的每小时快照。写作此书时(2017 年),这项服务已经关闭,但我们保存一份数据用于本书的案例。 @@ -52,7 +52,7 @@ Chrome/17.0.963.78 Safari/535.11', 'u': 'http://www.ncbi.nlm.nih.gov/pubmed/22415991'} ``` -##用纯 Python 代码对时区进行计数 +## 用纯 Python 代码对时区进行计数 假设我们想要知道该数据集中最常出现的是哪个时区(即 tz 字段),得到答案的办法有很多。首先,我们用列表推导式取出一组时区: ```python @@ -1903,7 +1903,7 @@ DE 0.802776 0.197224 FL 0.467417 0.532583 ``` -#14.6 总结 +# 14.6 总结 我们已经完成了正文的最后一章。附录中有一些额外的内容,可能对你有用。 diff --git a/docs/5.md b/docs/5.md index e92a7ad52c2c4f2483b8d033789932164b279bd6..949a40af0e689561dc78ffbb66dda8d3693a2ced 100644 --- a/docs/5.md +++ b/docs/5.md @@ -1196,7 +1196,7 @@ Out[174]: 2 8.0 9.0 10.0 11.0 0 ``` -##`DataFrame`和`Series`之间的运算 +## `DataFrame`和`Series`之间的运算 跟不同维度的 NumPy 数组一样,`DataFrame`和`Series`之间算术运算也是有明确规定的。先来看一个具有启发性的例子,计算一个二维数组与其某行之间的差: ```python In [175]: arr = np.arange(12.).reshape((3, 4)) diff --git a/docs/8.md b/docs/8.md index ea6a016eb0215898f7c34476f3cfa95c6781c333..afd4e3020298b2e25cb03dc035aaa406e6d699cf 100644 --- a/docs/8.md +++ b/docs/8.md @@ -291,7 +291,7 @@ pandas 对象中的数据可以通过一些方式进行合并: 我将分别对它们进行讲解,并给出一些例子。本书剩余部分的示例中将经常用到它们。 -##数据库风格的`DataFrame`合并 +## 数据库风格的`DataFrame`合并 数据集的合并(merge)或连接(join)运算是通过一个或多个键将行连接起来的。这些运算是关系型数据库(基于 SQL)的核心。pandas 的`merge`函数是对数据应用这些算法的主要切入点。 @@ -1415,6 +1415,6 @@ Out[166]: 8 B 6 ``` -#8.4 总结 +# 8.4 总结 现在你已经掌握了 pandas 数据导入、清洗、重塑,我们可以进一步学习 matplotlib 数据可视化。我们在稍后会回到 pandas,学习更高级的分析。 diff --git a/docs/9.md b/docs/9.md index 58803d4c963a03ebf574f2f08c69c54f2fd034a8..69189cb49e7a7e8256286dac8b74a4852e195587 100644 --- a/docs/9.md +++ b/docs/9.md @@ -648,7 +648,7 @@ In [107]: sns.pairplot(trans_data, diag_kind='kde', plot_kws={'alpha': 0.2}) 你可能注意到了 plot_kws 参数。它可以让我们传递配置选项到非对角线元素上的图形使用。对于更详细的配置选项,可以查阅 seaborn.pairplot 文档字符串。 -##分面网格(facet grid)和类型数据 +## 分面网格(facet grid)和类型数据 要是数据集有额外的分组维度呢?有多个分类变量的数据可视化的一种方法是使用小面网格。seaborn 有一个有用的内置函数 factorplot,可以简化制作多种分面图(见图 9-26): ```python In [108]: sns.factorplot(x='day', y='tip_pct', hue='time', col='smoker', diff --git a/docs/a.md b/docs/a.md index e6720e17a355acd8114bcf71431e8a42ab688c1d..7c161b474a4dbfa8fd6364c7000cc7536c3ef1e2 100644 --- a/docs/a.md +++ b/docs/a.md @@ -1102,7 +1102,7 @@ Out[212]: dtype: float64 ``` -#A.7 用 Numba 编写快速 NumPy 函数 +# A.7 用 Numba 编写快速 NumPy 函数 Numba 是一个开源项目,它可以利用 CPUs、GPUs 或其它硬件为类似 NumPy 的数据创建快速函数。它使用了 LLVM 项目(http://llvm.org/),将 Python 代码转换为机器代码。