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

如何用Pandas DataFrame按小时计算时间戳差值与电池电量差值

按小时计算时间戳差值和电池电量差值的解决方案

嘿,作为刚接触Python和Pandas的新手,我来一步步帮你搞定这个问题~ 先明确目标:把给定的DataFrame按小时分组,计算每个小时内的时间跨度(最后一条记录减第一条的时间差)和电池电量变化(最后一条减第一条的电量差),并整理成你想要的格式。

第一步:准备数据并转换时间格式

首先得把timestamp列转换成Pandas能识别的datetime类型,这是进行时间运算的基础。如果你的数据是从文件读取的,记得在pd.read_csv里加上parse_dates=['timestamp'],这里先模拟你的原始数据:

import pandas as pd

# 模拟原始数据
data = {
    'timestamp': ['2017-10-09 15:33:09', '2017-10-09 15:36:17', '2017-10-09 15:36:27',
                  '2017-10-09 15:38:08', '2017-10-09 15:42:39', '2017-10-09 15:45:30',
                  '2017-10-09 15:48:41', '2017-10-09 15:51:52', '2017-10-09 15:54:53',
                  '2017-10-09 15:57:54', '2017-10-09 16:00:55', '2017-10-09 16:05:47',
                  '2017-10-09 16:08:58', '2017-10-09 16:12:09', '2017-10-09 16:15:20',
                  '2017-10-09 16:18:11'],
    'battery_level': [0.37, 0.38, 0.37, 0.38, 0.39, 0.40, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.50]
}
df = pd.DataFrame(data)

# 转换timestamp列为datetime类型
df['timestamp'] = pd.to_datetime(df['timestamp'])

第二步:按小时分组并计算差值

接下来用groupby按小时分组,对每个分组计算时间差和电池差:

# 按小时分组,提取指定格式的小时作为分组键,计算每组的时间跨度和电池变化
result = df.groupby(df['timestamp'].dt.strftime('%H:00:00')).agg(
    # 时间差:组内最后一条时间 - 第一条时间
    timestamp_diff=('timestamp', lambda x: x.max() - x.min()),
    # 电池差:组内最后一条电量 - 第一条电量
    battery_diff=('battery_level', lambda x: x.max() - x.min())
).reset_index().rename(columns={'timestamp': 'hour'})

# 把时间差转换成HH:MM:SS格式(默认timedelta会带天数,我们只取时分秒部分)
result['timestamp_diff'] = result['timestamp_diff'].astype(str).str.split().str[-1]

# 调整列顺序,匹配你想要的输出格式
result = result[['hour', 'timestamp_diff', 'battery_diff']]

最终结果

运行代码后,你会得到完全符合预期的结果:

hour timestamp_diff  battery_diff
0  15:00:00        00:24:45           0.07
1  16:00:00        00:17:26           0.05

小提示

  • 用dt.strftime('%H:00:00')是为了把时间戳转换成你需要的小时格式作为分组标识;
  • agg函数可以一次性对不同列应用不同计算逻辑,效率很高;
  • 调整时间差格式是因为Pandas的timedelta类型默认会显示0 days 00:24:45,我们只截取后面的时分秒部分就好。

内容的提问来源于stack exchange,提问作者Ruben Alves

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:39:19