import pandas as pd
import datetime as dt

Apple Health Data – Real-World Analysis ProjectΒΆ

This project analyzes personal health data exported from Apple Health, including walking/running distance, step counts, and flights climbed. It demonstrates a complete real-world data analysis workflow: loading multiple CSV files with date parsing, selecting relevant columns from wide datasets, converting date strings to datetime objects with pd.to_datetime(), applying custom unit conversion functions (km to meters) with .apply(), computing summary statistics, and creating interactive bar charts with Plotly to visualize daily activity patterns.

Why this matters: Wearable device data is a rapidly growing domain in health analytics and personalized medicine. Working with this type of time-series health data teaches practical skills that transfer directly to IoT sensor data, fitness app analytics, and clinical data science.

DistanceWalkingRunning = pd.read_csv("DistanceWalkingRunning.csv",parse_dates=True)
StepCount = pd.read_csv("StepCount.csv",parse_dates=True)
FlightsClimbed = pd.read_csv("FlightsClimbed.csv")
DistanceWalkingRunning
FlightsClimbed
DistanceWalkingRunning.head()
walking = DistanceWalkingRunning[["creationDate","startDate","endDate","value"]]

walking.head()

walking["creationDate"]

walking.head()
walking.head()

pd.to_datetime(walking["creationDate"])

walking["date"]

walking.head()
import plotly
from plotly.graph_objs import Scatter, Layout
import plotly.graph_objs as go


stepdata = [go.Bar(x=walking["date"].dt.date, y=walking["metres"])]


plotly.offline.plot({ 'data': stepdata,
            'layout': {
               'title': 'Walking (metres)',
               'xaxis': {
                 'title': 'Creation Date'},
               'yaxis': {
                'title': 'Value '}
        }})
def km_to_m(km):
    return int(km*1000)
walking["metres"] = walking["value"].apply(km_to_m)
walking["metres"].mean()