← 返回题库
中级

实现dayparting时段规则解析

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    import pandas as pd
    tgt_csv = open_url(____).read()
    targets = pd.read_csv(StringIO(____))
    TIME_SLOTS = {
        '____': {'____':'____','____':'____','____':'____'},
        '____':         {'____':'____','____':'____','____':'____'},
        '____': {'____':'____','____':'____','____':'____'},
        '____':        {'____':'____','____':'____','____':'____'},
    }
    def parse_time(____):
        h, m = map(int, t.split(____))
        return h * ____ + m
    def get_active_slot(____):
        for slot_name, slot in TIME_SLOTS.items():
            start = parse_time(____)
            end = parse_time(____)
            if start <= minute_of_day < end:
                return slot_name, slot['____']
        return None, '____'
    print(____)
    for h in [____, ____, ____, ____, ____, ____]:
        slot, desc = get_active_slot(____)
        print("____"+str(____)+"____"+str(____)+"____"+desc+"____")
    print(____)
    for slot, grp in targets.groupby(____):
        print("____"+str(____)+"____"+str(len(____))+"____"+str(round(grp['____'].mean(),____)))

示例

输入
solve()
期望输出
Dayparting test:
  7:00 -> slot=morning_peak (早高峰)
  8:00 -> slot=morning_peak (早高峰)
  12:00 -> slot=noon (午间)
  18:00 -> slot=evening_peak (晚高峰)
  22:00 -> slot=night (深夜)
  2:00 -> slot=None (off_peak)
Target distribution by slot:
  evening_peak: 25 campaigns avg_freq=7.6
  morning_peak: 26 campaigns avg_freq=7.5
  night: 22 campaigns avg_freq=8.0
  noon: 26 campaigns avg_freq=9.0
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码