初级
统计各设备上报失败率
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
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%
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199