← 返回题库
初级

闻嗅复核:营业收入增长率计算

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
"""
金融风险管理 - q004
闻嗅复核基础:营业收入增长率计算
"""

metadata = {
    "id": "q004",
    "title": "闻嗅复核:营业收入增长率计算",
    "module": "闻嗅复核基础技术",
    "difficulty": "beginner",
    "data_files": ["case32_xyz_profit.csv"],
    "skills": ["增长率计算", "同比分析", "趋势判断"],
    "estimated_minutes": 8
}

# 题目描述
"""
【题目】
读取case32_xyz_profit.csv,计算XYZ公司2018年全年相对2017年的各项收入/利润增长率:
- 营业收入增长率 = (2018FY_revenue - 2017FY_revenue) / 2017FY_revenue
- 营业成本增长率 = (2018FY_cost - 2017FY_cost) / 2017FY_cost
- 净利润增长率 = (2018FY_net_profit - 2017FY_net_profit) / 2017FY_net_profit

输出DataFrame,包含:指标名称、2017FY值、2018FY值、增长率(保留4位小数)
"""

def solve():
    import pandas as pd
    from pyodide.http import open_url
    from io import StringIO

    BASE_URL = "https://data.zuihe.com/finance/"
    df = pd.read_csv(StringIO(open_url(BASE_URL + "case32_xyz_profit.csv").read()))

    fy17 = df[df['period'] == '2017FY'].iloc[0]
    fy18 = df[df['period'] == '2018FY'].iloc[0]

    items = [
        ('营业收入', 'revenue'),
        ('营业成本', 'cost'),
        ('净利润', 'net_profit'),
    ]

    rows = []
    for name, col in items:
        v17 = fy17[col]
        v18 = fy18[col]
        growth = round((v18 - v17) / v17, 4)
        rows.append({'指标名称': name, '2017FY': v17, '2018FY': v18, '增长率': growth})

    return pd.DataFrame(rows).to_string()

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

示例

输入
solve()
期望输出
指标名称     2017FY     2018FY     增长率 | 0  营业收入  240686000  336700000  0.3989 | 1  营业成本  204000000  262000000  0.2843 | 2   净利润   16489500   46995000  1.8500
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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