← 返回题库
初级

统计每用户平均卡片数与分布

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    from pyodide.http import open_url
    from io import StringIO
    import pandas as pd
    cards=pd.read_csv(StringIO(open_url("https://data.zuihe.com/dbd/ms-memcard/state_00/cards.csv").read()))
    users=pd.read_csv(StringIO(open_url("https://data.zuihe.com/dbd/ms-memcard/state_00/users.csv").read()))
    by_user=cards.groupby('user_id').size().reset_index(name='card_count')
    merged=by_user.merge(users[['user_id','name']],on='user_id',how='left')
    print(f"Cards per user: avg={round(by_user['card_count'].mean(),1)} max={by_user['card_count'].max()} min={by_user['card_count'].min()}")
    for _,r in merged.sort_values('card_count',ascending=False).head(8).iterrows():
        print(f"  {r['name']}: {r['card_count']} cards")

示例

输入
solve()
期望输出
Cards per user: avg=92.6 max=139 min=44
  Kate: 139 cards
  Eve: 136 cards
  Bob: 124 cards
  Tina: 122 cards
  Sam: 116 cards
  Rose: 116 cards
  Paul: 114 cards
  Mia: 111 cards
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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