初级
利润表分析:营业收入增长率与结构
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
"""
金融风险管理 - q013
利润表分析:营业收入增长率与结构分析
"""
metadata = {
"id": "q013",
"title": "利润表分析:营业收入增长率与结构",
"module": "利润表分析与异常识别",
"difficulty": "beginner",
"data_files": ["case32_xyz_profit.csv"],
"skills": ["增长率计算", "收入结构", "同比分析"],
"estimated_minutes": 8
}
# 题目描述
"""
【题目】
读取case32_xyz_profit.csv,分析XYZ公司2018年收入构成:
1. 计算2018FY vs 2017FY营业收入增长率(保留4位小数)
2. 计算毛利(revenue - cost)及毛利增长率
3. 计算毛利率(2017FY 和 2018FY,保留4位小数)
输出DataFrame,columns=['指标', '2017FY', '2018FY', '增长率'],包含:营业收入、营业成本、毛利、毛利率
"""
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()))
r17 = df[df['period'] == '2017FY'].iloc[0]
r18 = df[df['period'] == '2018FY'].iloc[0]
def growth(a, b):
return round((b - a) / abs(a), 4)
gm17 = (r17['revenue'] - r17['cost']) / r17['revenue']
gm18 = (r18['revenue'] - r18['cost']) / r18['revenue']
rows = [
{'指标': '营业收入', '2017FY': r17['revenue'], '2018FY': r18['revenue'],
'增长率': growth(r17['revenue'], r18['revenue'])},
{'指标': '营业成本', '2017FY': r17['cost'], '2018FY': r18['cost'],
'增长率': growth(r17['cost'], r18['cost'])},
{'指标': '毛利', '2017FY': round(r17['revenue'] - r17['cost'], 2),
'2018FY': round(r18['revenue'] - r18['cost'], 2),
'增长率': growth(r17['revenue'] - r17['cost'], r18['revenue'] - r18['cost'])},
{'指标': '毛利率', '2017FY': round(gm17, 4), '2018FY': round(gm18, 4),
'增长率': round(gm18 - gm17, 4)},
]
return pd.DataFrame(rows).to_string()
if __name__ == "__main__":
print(solve())
示例
输入
solve()
期望输出
指标 2017FY 2018FY 增长率 | 0 营业收入 2.406860e+08 3.367000e+08 0.3989 | 1 营业成本 2.040000e+08 2.620000e+08 0.2843 | 2 毛利 3.668600e+07 7.470000e+07 1.0362 | 3 毛利率 1.524000e-01 2.219000e-01 0.0694
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199