初级
存贷双高识别:货币资金占总资产比率筛查
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
"""
金融风险管理 - q063
存贷双高识别:货币资金/总资产比率筛查
"""
metadata = {
"id": "q063",
"title": "存贷双高识别:货币资金占总资产比率筛查",
"module": "存贷双高风险识别",
"difficulty": "beginner",
"data_files": ["balance_sheet.csv"],
"skills": ["存贷双高", "货币资金占比", "异常筛查"],
"estimated_minutes": 8
}
"""
【题目】
读取balance_sheet.csv,筛选2023年合并报表(Typrep='A'),
识别货币资金占总资产比例过高的公司:
1. 计算货币资金/总资产(保留4位小数)
2. 筛选比例 >= 0.20(存贷双高判断条件之一)
3. 按比例降序排列,输出前15家
输出DataFrame,包含:Stkcd、ShortName、货币资金、总资产、货币资金占总资产比(保留4位小数)
"""
def solve():
import pandas as pd
from pyodide.http import open_url
from io import StringIO
BASE_URL = "https://data.zuihe.com/finance/"
bs = pd.read_csv(StringIO(open_url(BASE_URL + "balance_sheet.csv").read()))
df = bs[(bs['Accper'] == '2023-12-31') & (bs['Typrep'] == 'A')].copy()
df = df.dropna(subset=['货币资金', '总资产'])
df = df[df['总资产'] > 0]
df['货币资金占总资产比'] = (df['货币资金'] / df['总资产']).round(4)
df = df[df['货币资金占总资产比'] >= 0.20]
result = df.nlargest(15, '货币资金占总资产比')[
['Stkcd', 'ShortName', '货币资金', '总资产', '货币资金占总资产比']
].reset_index(drop=True)
return result.to_string()
if __name__ == "__main__":
print(solve())
示例
输入
solve()
期望输出
Stkcd ShortName 货币资金 总资产 货币资金占总资产比 | 0 688657 浩辰软件 1.104030e+09 1.491627e+09 0.7402 | 1 601519 大智慧 1.634709e+09 2.300883e+09 0.7105 | 2 920039 国义招标 5.880100e+08 8.364096e+08 0.7030 | 3 688016 心脉医疗 2.966931e+09 4.246209e+09 0.6987 | 4 603023 威帝股份 5.462936e+08 7.908200e+08 0.6908 | 5 688651 盛邦安全 7.703145e+08 1.140756e+09 0.6753 | 6 920299 灿能电力 2.124041e+08 3.267983e+08 0.6500 | 7 688049 炬芯科技 1.245919e+09 1.926597e+09 0.6467 | 8 301103 何氏眼科 1.588531e+09 2.483695e+09 0.6396 | 9 688297 中无人机 4.692864e+09 7.362398e+09 0.6374 | 10 301360 荣旗科技 8.807052e+08 1.417413e+09 0.6213 | 11 920679 前进科技 3.625266e+08 5.853895e+08 0.619...
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199