You need to enable JavaScript to run this app. 用Python Jupyter实现XLSX的klokkeslett列按2小时间隔拆分时间存数组
优惠活动
大模型
产品
解决方案
定价
更多

用Python Jupyter实现XLSX的klokkeslett列按2小时间隔拆分时间存数组

Jupyter环境下XLSX时间列按2小时间隔分组实现

前置依赖安装

在Jupyter的代码单元格执行以下命令,安装数据处理所需的依赖包:
!pip install pandas openpyxl

分步实现逻辑

  1. 读取目标XLSX文件,自动将klokkeslett列解析为时间格式,避免手动格式转换的误差

    import pandas as pd
    
    # 替换为你的实际XLSX文件路径
    df = pd.read_excel(
        "目标文件.xlsx",
        engine="openpyxl",
        parse_dates=["klokkeslett"]
    )
    
  2. 定义分组规则

    • 分组起点为08:00:00,按2小时间隔划分区间:08:00-10:00、10:00-12:00……
    • 采用左闭右开的区间边界,即08:00:00整的条目归入第一组,10:00:00整的条目归入第二组,避免重复计数
  3. 批量生成分组匹配关系

    # 提取时间列的小时数值(含分、秒换算为小数)
    hour_value = df["klokkeslett"].dt.hour + df["klokkeslett"].dt.minute/60 + df["klokkeslett"].dt.second/3600
    
    # 生成分组边界:从8点开始,每2小时一个分界,覆盖文件内所有时间点
    start_time = 8
    time_step = 2
    max_hour = hour_value.max()
    bin_edges = list(range(start_time, int(max_hour) + time_step + 1, time_step))
    # 生成对应分组标签
    group_names = [f"{bin_edges[i]:02d}:00-{bin_edges[i+1]:02d}:00" for i in range(len(bin_edges)-1)]
    
    # 为每条数据匹配对应分组
    df["所属时间组"] = pd.cut(
        x=hour_value,
        bins=bin_edges,
        labels=group_names,
        right=False  # 开启左闭右开规则
    )
    
  4. 按分组拆分为独立存储数组

    grouped_storage = {}
    for group_label, rows in df.groupby("所属时间组", observed=True):
        # 移除临时添加的分组列,保留原始数据并转为数组格式
        grouped_storage[group_label] = rows.drop(columns=["所属时间组"]).values
    

结果验证

在Jupyter单元格执行对应命令即可查看存储结果:

  • 查看所有已生成的分组名称:list(grouped_storage.keys())
  • 查看指定区间的存储数组:比如调取08:00-10:00区间的条目,执行 grouped_storage["08:00-10:00"]
  • 数组为numpy.ndarray格式,支持常规数组索引、遍历操作,可直接用于后续分析

常见适配调整

  • 如果klokkeslett列读取后是字符串格式,先执行转换:df["klokkeslett"] = pd.to_datetime(df["klokkeslett"], format="%H:%M:%S") 再走后续流程
  • 如果文件中存在早于08:00的时间条目,仅需将start_time参数调整为早于文件内最小时间的整数值,即可把这类条目纳入分组范围
  • 如果需要修改区间长度,仅需调整time_step参数为目标间隔小时数即可

内容的提问来源于stack exchange,提问作者André Lund

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 18:45:01