You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pandas对iPhone健康APP的步数DataFrame按日求和?

解决iPhone健康步数数据逐日求和的问题

嘿,这事儿不难,我给你一步步拆解:

第一步:确保日期列是datetime类型

首先得把startDate(或者endDate,看你习惯用哪个时间点,步数数据用开始时间就够)转换成Pandas能识别的datetime格式——毕竟iPhone导出的健康数据里的日期通常是字符串形式,比如2024-05-20 08:30:00这种,不转格式没法按日期分组。代码如下:

import pandas as pd

# 假设你的DataFrame命名为df
df['startDate'] = pd.to_datetime(df['startDate'])

第二步:提取纯日期部分(去掉时分秒)

接下来,我们需要从完整的datetime里剥离出仅日期的部分(比如把2024-05-20 08:30:00简化为2024-05-20),方便后续按天聚合:

# 新增一列存储纯日期,用dt.date得到日期对象,或者用dt.floor('D')保留datetime格式(后续操作更灵活)
df['date'] = df['startDate'].dt.date
# 可选:df['date'] = df['startDate'].dt.floor('D')

第三步:按日期分组求和

现在就可以按新的date列分组,对value列求和啦。如果unit列的单位都是统一的(比如步数都是count),也可以把它保留下来:

# 逐日汇总步数,同时保留单位(取每组第一个unit值,因为所有行的单位一致)
daily_steps = df.groupby('date').agg(
    unit=('unit', 'first'),
    total_daily_steps=('value', 'sum')
).reset_index()

额外小提示

  • 如果你说的“最后一列”是无关数据,可以先删掉避免干扰:df = df.drop(columns=['多余列的名称'])
  • 要是遇到极少数跨天的记录(虽然iPhone步数一般不会有),可以根据实际需求选择用startDate还是endDate的日期来分组

这样处理完,daily_steps就是你要的逐日步数汇总数据啦!

内容的提问来源于stack exchange,提问作者J.Doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:23:38