初级
存贷双高识别:有息债务占投入总资本比率
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
"""
金融风险管理 - q064
存贷双高识别:有息债务/投入总资本比率
"""
metadata = {
"id": "q064",
"title": "存贷双高识别:有息债务占投入总资本比率",
"module": "存贷双高风险识别",
"difficulty": "beginner",
"data_files": ["balance_sheet.csv", "solvency.csv"],
"skills": ["有息债务", "投入总资本", "存贷双高第二条件"],
"estimated_minutes": 10
}
"""
【题目】
读取balance_sheet.csv和solvency.csv,筛选2023年合并报表,
计算有息债务/投入总资本比率(存贷双高第二个判断条件):
有息债务 = F010601A(来自solvency.csv)
投入总资本 = 有息债务 + 所有者权益合计(来自balance_sheet.csv)
比率 = 有息债务 / 投入总资本
筛选比率 >= 0.20 的公司,按比率降序,输出前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()))
sol = pd.read_csv(StringIO(open_url(BASE_URL + "solvency.csv").read()))
bs23 = bs[(bs['Accper'] == '2023-12-31') & (bs['Typrep'] == 'A')][
['Stkcd', 'ShortName', '所有者权益合计']]
sol23 = sol[(sol['Accper'] == '2023-12-31') & (sol['Typrep'] == 'A')][
['Stkcd', 'F010601A']].rename(columns={'F010601A': '有息债务'})
df = bs23.merge(sol23, on='Stkcd').dropna(subset=['有息债务', '所有者权益合计'])
df = df[df['所有者权益合计'] > 0]
df['投入总资本'] = df['有息债务'] + df['所有者权益合计']
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 600172 黄河旋风 -2.567941e+09 2.493388e+09 -7.455269e+07 34.4446 | 1 603843 正平股份 -1.384725e+09 1.294033e+09 -9.069261e+07 15.2683 | 2 300198 纳川股份 -4.670217e+08 4.265698e+08 -4.045181e+07 11.5451 | 3 603101 汇嘉时代 -1.645406e+09 1.455814e+09 -1.895922e+08 8.6787 | 4 600617 国新能源 -5.447328e+09 4.087397e+09 -1.359931e+09 4.0056 | 5 721 西安饮食 -6.517029e+08 4.271961e+08 -2.245069e+08 2.9028 | 6 600569 安阳钢铁 -1.223601e+10 7.406677e+09 -4.829332e+09 2.5337 | 7 600678 四川金顶 -4.160564e+08 2.305850e+08 -1.854714e+08 2.2432 | 8 600697 欧亚集团 -1.081539e+10 4.284286e+09 -6.531107e+09 1.6560 | 9 300237 美晨生态 -1.059820e+09 1.734827e+08 -8.863372e+08...
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199