標籤:

iPhone 步行數據分析

本文中我將展示如何利用 pandas 和 ggplot 來分析 iPhone 的步行數據,我主要利用 Rodeo(Yhats 的 IDE)來進行數據分析。

數據收集

首先我想從我的 iPhone 中導出用於分析的步行數據,Quantified Self 實驗室的工作人員開發了一個數據提取的便捷工具——QS Access。

以下是一組關於步行數據的截圖:

QS Access 應用可以提取出一個包含某個時期內步行數據的 CSV 文件,該文件中包含三列變數——開始時點、結束時點和步數。

數據分析

我主要利用 pandas 中的時間序列分析工具來分析數據,當 Wes McKinney開始處理 pandas 項目時,他就已經在一家投資管理公司工作,該行業廣泛依賴於時間序列分析方法。因此,pandas 中包含非常多的時間序列分析函數。

首先,當我們擁有了時間序列數據後,我們可以定義參數 parse_dates 使得 pandas 可以正確地處理時間序列數據。對於我們來說,結束時點變數並沒有包含額外的有價值的信息,所以我們在分析過程中將不考慮該變數的情況。

最後我們將開始時點變數設定為索引變數,這個設定有助於我們進一步的數據分析。

每小時步行數據

如何快速地繪圖分析現有的步行數據呢?

很不幸的是,我們無法從上圖中得到比較有價值的信息,我們應該如何提高可視化效果呢?我想到一個好主意——我們可以利用 pandas 中的 resample 函數來改變數據集的時間粒度。

更精確地說,我們可以利用 downsampling 的方法來降低時間的頻度。比如,我們可以採集每小時的數據,然後利用重抽樣和匯總計算的方法獲得日度數據、周度數據和月度數據。

獲取每天步行數據

從上圖中我們可以看出,每天的步數存在一個上升趨勢,隨著時間的推移,步行的路程越長。

獲取每周和每月步行數據

和上述代碼一樣,只要將 W 和 M 傳遞到 resample 函數中就能得到每周和每月的步行數據。

由於我更關心每天的運動情況,所以我將利用平均函數來計算每周或每月中平均每天的步行情況。具體的代碼如下所示:

更深入的分析

我很好奇的一件事是:工作日的運動量是否大於周末的運動量?我們可以利用 weekday 和 weekday_name 兩個方法來幫助分析。對於每個時間戳數據,前者可以得知它屬於一周中的第幾天,而後者可以得知該時間點對應的時間名字信息。添加完這兩個新變數後,我們還可以添加一個布爾變數來表示某個時間點是否是周末。

此外,我們還可以根據變數 weekend_bool來做分類匯總處理,並對比兩組數據的差異情況。

從上述結果中可以看出,周末期間的每天平均步數是 11,621 步,中位數是 10,228,而工作日期間的每天平均步數是 10,146 步,中位數是 9,742,因此我們可以認為周末期間的運動量更大。

趨勢分析

最後讓我們來討論下上文提到的上升趨勢,四月初由於工作的原因,我從夏洛特搬到了紐約城,擔任 Yhat的軟體工程師。

我想知道經過這次搬家之後,我每天的步行情況有沒有發生改變?我們可以利用上文分析周末與工作日步行情況的方法來分析這個問題。

從上圖中我們可以輕易地看出自從搬到紐約城之後,每天的運動量確實增加了。但這是由多方面因素共同決定的,比如搬到紐約城後我的跑步次數增加了,這會增加每天的平均步數。如果想要進行更深入的分析,我們需要獲取更多的數據支持,由於篇幅問題,我們將在之後的文章中繼續分析。

總結

我希望這個分析可以讓您開始關注自己每天的步行情況,並利用 Rodeo 和 pandas 來分析數據。如果你對這個項目感興趣的話,可以參閱該鏈接。

weixin.qq.com/r/WkMCGqv (二維碼自動識別)

原文鏈接:?·hat | Analyzing iPhone Step Data

原文作者:Ross

譯者:Fibears


推薦閱讀:

數據是你的生命線,請待她如待初戀
看完後,你可能就知道要買什麼車了|2017上海車展
「駕駛體驗」相關話題最熱門 8月知乎汽車數據排行榜
可視化圖表初階
看科技創新如何改變數字營銷業務--帶你了解什麼叫「數字營銷」

TAG:数据 |