1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FitbitデータをPythonで解析し、指定時刻の過去12時間分の歩数を計算する方法

Posted at

活動データの分析では、特定の時刻から遡って過去12時間分のデータを抽出し、歩数を集計することがよくあります。本記事では、Fitbitデータのエクスポート方法から、Pythonを用いた解析手順を詳しく解説します。


Fitbitデータのエクスポート手順

  1. Fitbitのアカウントにログインします:
    Fitbitエクスポートページ

  2. データエクスポート画面で対象の期間を選択します。

    • 例: 2024年12月のデータを取得したい場合、「2024-12-01」から「2024-12-31」の範囲を指定。
  3. ダウンロードされたデータは以下のようなディレクトリに保存されます。

    /Users/ユーザー名/Downloads/Takeout/Fitbit/Physical Activity_GoogleData/
    
  4. ファイル名は次のようになります:

    steps_YYYY-MM-DD.csv
    
    • 例: steps_2024-12-01.csv

Pythonで指定時刻の過去12時間分の歩数を計算する

Fitbitデータから、指定した日時を基準に過去12時間分の歩数を計算する方法を以下に示します。

必要なライブラリ

以下のライブラリを使用します。必要に応じてインストールしてください。

pip install pandas

Pythonコード例

import pandas as pd
from datetime import datetime, timedelta

# CSVファイルのパス(エクスポートしたFitbitデータのパスを指定)
file_path = '/Users/ユーザー名/Downloads/Takeout/Fitbit/Physical Activity_GoogleData/steps_2024-12-01.csv'

# CSVファイルを読み込み
df = pd.read_csv(file_path)

# タイムスタンプ(UTC)をdatetime形式に変換
df['timestamp'] = pd.to_datetime(df['timestamp'], utc=True)

# 日本時間(UTC+9)に変換し、タイムゾーンを削除
df['jtc'] = df['timestamp'].dt.tz_convert('Asia/Tokyo').dt.tz_localize(None)

# 指定した日時(例: 2024-12-13 12:18:00 JST)
specified_time = datetime(2024, 12, 13, 12, 18, 0)

# 指定した日時の12時間前(日本時間)
start_time = specified_time - timedelta(hours=12)

# 過去12時間のデータを抽出
filtered_df = df[(df['jtc'] >= start_time) & (df['jtc'] <= specified_time)]

# 過去12時間分の歩数を合計
total_steps = filtered_df['steps'].sum()

# 結果を出力
print(f"指定した日時(日本時間): {specified_time}")
print(f"指定した日時の12時間前(日本時間): {start_time}")
print(f"過去12時間分の歩数の合計: {total_steps}")

コードの説明

  1. UTCタイムスタンプの読み込み:

    df['timestamp'] = pd.to_datetime(df['timestamp'], utc=True)
    

    Fitbitのtimestamp列はUTC形式で記録されているため、UTCタイムゾーン付きの日時型に変換します。

  2. 日本時間への変換:

    df['jtc'] = df['timestamp'].dt.tz_convert('Asia/Tokyo').dt.tz_localize(None)
    

    UTCタイムスタンプを日本時間(JST: UTC+9)に変換し、タイムゾーン情報を削除します。

  3. 過去12時間の範囲を計算:

    specified_time = datetime(2024, 12, 13, 12, 18, 0)
    start_time = specified_time - timedelta(hours=12)
    

    指定時刻を基準に、その12時間前の範囲を計算します。

  4. データの抽出と集計:

    filtered_df = df[(df['jtc'] >= start_time) & (df['jtc'] <= specified_time)]
    total_steps = filtered_df['steps'].sum()
    

    指定範囲内のデータを抽出し、steps列の合計を計算します。


実行結果

例えば、指定時刻を2024-12-13 12:18:00 JSTとした場合、過去12時間(2024-12-13 00:18:00 JSTから2024-12-13 12:18:00 JSTまで)の歩数データを集計します。

出力例:

指定した日時(日本時間): 2024-12-13 12:18:00
指定した日時の12時間前(日本時間): 2024-12-13 00:18:00
過去12時間分の歩数の合計: 150

注意点

  1. ファイルパスの指定:
    Fitbitのデータは以下のようなディレクトリに保存されるため、正しいパスを指定してください。

    /Users/ユーザー名/Downloads/Takeout/Fitbit/Physical Activity_GoogleData/steps_YYYY-MM-DD.csv
    
  2. 複数日分のデータ:
    複数日分のデータを処理したい場合は、すべてのCSVファイルを結合して解析する必要があります。

  3. 範囲の調整:
    計算対象の範囲を変更したい場合は、timedelta(hours=12)を変更してください。


まとめ

この方法を使用すると、指定時刻を基準に過去12時間分の歩数データを効率的に集計できます。Fitbitデータの分析に役立ててください!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?