← 返回题库
初级

按事件类型过滤设备事件

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    from pyodide.http import open_url
    from io import StringIO
    import pandas as pd, json
    events_csv = open_url("https://data.zuihe.com/dbd/ms-iot/state_05/device_events.csv").read()
    events = pd.read_csv(StringIO(events_csv))
    print("Event type distribution:")
    for etype, grp in events.groupby('event_type'):
        print("  " + etype + ": " + str(len(grp)))
    alarm_events = events[events['event_type']=='AlarmTriggered']
    print("AlarmTriggered (" + str(len(alarm_events)) + "):")
    for _, ev in alarm_events.iterrows():
        payload = json.loads(ev['payload'])
        print("  " + ev['device_id'] + " v" + str(ev['version']) + ": " + str(payload.get('metric')) + "=" + str(payload.get('value')) + " threshold=" + str(payload.get('threshold')))

示例

输入
solve()
期望输出
Event type distribution:
  AlarmTriggered: 2
  DeviceOffline: 2
  DeviceOnline: 6
  ThresholdChanged: 2
AlarmTriggered (2):
  DEV004 v3: vibration_rms=18.7 threshold=15.0
  DEV008 v2: pressure=2500.1 threshold=2000.0
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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