← 返回题库
初级

统计各设备上报失败率

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    from pyodide.http import open_url
    from io import StringIO
    import pandas as pd
    logs_csv = open_url("https://data.zuihe.com/dbd/ms-iot/state_03/upload_logs.csv").read()
    logs = pd.read_csv(StringIO(logs_csv))
    print(f"总上报: {len(logs)}, 失败: {(logs['success']==0).sum()}")
    for did, grp in logs.groupby('device_id'):
        total = len(grp); fail = (grp['success']==0).sum()
        rate = fail/total
        flag = ' ⚠' if rate > 0.3 else ''
        print(f"  {did}: total={total}, fail={fail}, fail_rate={rate:.1%}{flag}")

示例

输入
solve()
期望输出
总上报: 70, 失败: 25
  DEV001: total=20, fail=15, fail_rate=75.0% ⚠
  DEV002: total=5, fail=0, fail_rate=0.0%
  DEV003: total=5, fail=0, fail_rate=0.0%
  DEV004: total=5, fail=0, fail_rate=0.0%
  DEV005: total=5, fail=0, fail_rate=0.0%
  DEV006: total=15, fail=10, fail_rate=66.7% ⚠
  DEV007: total=5, fail=0, fail_rate=0.0%
  DEV008: total=5, fail=0, fail_rate=0.0%
  DEV009: total=5, fail=0, fail_rate=0.0%
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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