← 返回题库
初级

存贷双高识别:有息债务占投入总资本比率

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
"""
金融风险管理 - 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...
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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