初级
统计账户充值流水分析
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
def solve():
from pyodide.http import open_url
from io import StringIO
import pandas as pd
accts=pd.read_csv(StringIO(open_url("https://data.zuihe.com/dbd/ms-mealhub/state_05/meal_accounts.csv").read()))
recharge=accts[accts['type']=='recharge'].groupby('employee_id')['amount'].sum().reset_index(name='recharged')
consume=accts[accts['type']=='consume'].groupby('employee_id')['amount'].sum().reset_index(name='consumed')
latest_bal=accts.groupby('employee_id')['balance_after'].last().reset_index(name='balance')
summary=recharge.merge(consume,on='employee_id',how='outer').merge(latest_bal,on='employee_id',how='outer').fillna(0)
print(f"Account stats:")
print(f" Total accounts: {len(summary)}")
print(f" Total balance: {round(summary['balance'].sum(),2)}")
print(f" Total recharged: {round(summary['recharged'].sum(),2)}")
print(f" Total consumed: {round(summary['consumed'].sum(),2)}")
print(f" Avg recharge: {round(summary['recharged'].mean(),2)}")
print(" Top recharged accounts:")
for _,r in summary.nlargest(5,'recharged').iterrows():
print(f" {r['employee_id']}: recharged={round(r['recharged'],2)} consumed={round(r['consumed'],2)} balance={round(r['balance'],2)}")
示例
输入
solve()
期望输出
Account stats:
Total accounts: 80
Total balance: 20131.77
Total recharged: 43900.0
Total consumed: 0.0
Avg recharge: 548.75
Top recharged accounts:
EMP-0005: recharged=1300.0 consumed=0.0 balance=18.21
EMP-0010: recharged=1300.0 consumed=0.0 balance=253.36
EMP-0060: recharged=1300.0 consumed=0.0 balance=66.22
EMP-0048: recharged=1200.0 consumed=0.0 balance=177.71
EMP-0042: recharged=1100.0 consumed=0.0 balance=345.78
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199