自白书
我叫Ross,沉迷于计算步数。行走的那种。这种沉迷带来的是经常性打开iPhone上的计步应用,查看步数上升,保证我的步数超过了10,000 (我妈妈说,那是一个神奇的数字)。幸运的是,在大多数的日子里,住在纽约让这个目标容易实现。
在这篇文章中,我会告诉你如何使用pandas时间序列和ggplot来分析我的iPhone步数数据。我在Python中使用Rodeo来进行所有的数据科学工作,它是用于数据科学的Yhat IDE。
收集数据
正如所有正经的数据迷,我希望能够将数据从手机导出以用于分析。Quantified Self Labs的牛人推出了一个名为QS Access的应用,它让检索这些数据不在话下!
下面是几个导出数据的截图。
QS Access应用导出一个CSV文件,它包含3列:一个start
时间戳,一个finish
时间戳和期间的steps (count)
。有一个选项,用来生成每小时/每天的数据行。为什么不从小时开始,看看情况如何 —— 更大的数据总是更好,对不对?
TO THE DATAS!
我们的分析将利用pandas中内置的时间序列工具。当Wes McKinney开始pandas项目时,他正为一家投资管理公司工作,而这个行业广泛依赖于时间序列分析。结果,pandas自带了这个领域的全面功能。
此时,有一些关于导入这个数据其他注意事项。
首先,我们已经知道我们拥有时间序列数据,因此,我们可以通过使用parse_dates
参数告诉pandas。
CSV中的结束时间数据并不是特别有趣,因为我们有开始时间,并且还有每小时的频率,因此,可以用usecols
来忽略它。
最后,设置开始时间 (col 0) 为索引列,获得一个DateTimeIndex
,这在后面将让我们的工作更容易。
df_hour = pd.read_csv('health_