← 返回题库
初级

综合评估:偿债能力五指标综合评分

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
"""
金融风险管理 - q084
综合财务评估:偿债能力五指标综合评分
"""

metadata = {
    "id": "q084",
    "title": "综合评估:偿债能力五指标综合评分",
    "module": "综合财务风险评估",
    "difficulty": "beginner",
    "data_files": ["solvency.csv"],
    "skills": ["流动比率", "速动比率", "资产负债率", "利息保障", "综合评分"],
    "estimated_minutes": 10
}

"""
【题目】
读取solvency.csv,筛选2023年合并报表(Typrep='A'),
对每家公司计算偿债能力综合评分(满分5分):

评分规则(每项1分):
1. 流动比率 F010101B >= 1.5
2. 速动比率 F010201B >= 1.0
3. 资产负债率 F010301B <= 0.60
4. 利息保障倍数 F010701B >= 3.0
5. 现金比率(暂用速动比率>1.5代替)

输出综合评分最低的前10家(偿债风险最高):
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/"
    sol = pd.read_csv(StringIO(open_url(BASE_URL + "solvency.csv").read()))

    df = sol[(sol['Accper'] == '2023-12-31') & (sol['Typrep'] == 'A')].copy()
    df = df.dropna(subset=['F010101B', 'F010201B', 'F010301B', 'F010701B'])

    df['s1'] = (df['F010101B'] >= 1.5).astype(int)
    df['s2'] = (df['F010201B'] >= 1.0).astype(int)
    df['s3'] = (df['F010301B'] <= 0.60).astype(int)
    df['s4'] = (df['F010701B'] >= 3.0).astype(int)
    df['s5'] = (df['F010201B'] >= 1.5).astype(int)
    df['综合评分'] = df['s1'] + df['s2'] + df['s3'] + df['s4'] + df['s5']

    cols = ['Stkcd', 'ShortName', 'F010101B', 'F010201B', 'F010301B', 'F010701B', '综合评分']
    result = df.nsmallest(10, '综合评分')[cols].rename(columns={
        'F010101B': '流动比率', 'F010201B': '速动比率',
        'F010301B': '资产负债率', 'F010701B': '利息保障倍数'
    }).reset_index(drop=True)
    for col in ['流动比率', '速动比率', '资产负债率', '利息保障倍数']:
        result[col] = result[col].round(4)
    return result.to_string()

if __name__ == "__main__":
    print(solve())

示例

输入
solve()
期望输出
Stkcd ShortName    流动比率    速动比率   资产负债率   利息保障倍数  综合评分 | 0     601      韶能股份  0.9585  0.8079  0.7413  -0.1186     0 | 1     868      安凯客车  0.9215  0.8200  0.6962 -27.6891     0 | 2    1287       中电港  1.2593  0.7687  0.6314   1.4193     0 | 3    2059      云南旅游  0.7769  0.7348  0.6069 -21.7865     0 | 4    2672      东江环保  1.1175  0.8764  0.7283  -4.2506     0 | 5    2739      万达电影  1.0282  0.8255  0.6504   2.0390     0 | 6    2848      高斯贝尔  0.8907  0.7282  0.6644  -8.6010     0 | 7  300167    ST 迪威迅  0.9437  0.8832  0.7167 -16.5916     0 | 8  300249       依米康  1.0344  0.8539  0.7166 -12.6926     0 | 9  300252       金信诺  1.0712  0.9431  0.7467  -3.7536     0
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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