初级
资产负债表结构验证
未完成 0%
初级参考
完整示例代码供参考,建议自己理解后重新输入
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()))
info = pd.read_csv(StringIO(open_url(BASE_URL + "company_info.csv").read()))
# 筛选2023年数据
df_2023 = bs[bs['Accper'] == '2023-12-31'].copy()
# 随机选择3家公司(或选取前3家)
sample = df_2023.head(3)
# 合并公司信息
result = sample.merge(info[['stkcd', 'name_tushare']],
left_on='Stkcd', right_on='stkcd', how='left')
output = []
for _, row in result.iterrows():
total_assets = row['总资产']
total_liabilities = row['负债合计']
equity = row['所有者权益合计']
# 验证恒等式
diff = abs(total_assets - total_liabilities - equity)
error_rate = diff / total_assets
is_valid = error_rate < 0.001
# 计算资产负债率
debt_ratio = total_liabilities / total_assets
output.append({
'公司名称': row['name_tushare'] or row['ShortName'],
'总资产(亿元)': round(total_assets / 1e8, 2),
'负债(亿元)': round(total_liabilities / 1e8, 2),
'权益(亿元)': round(equity / 1e8, 2),
'验证通过': is_valid,
'资产负债率': round(debt_ratio, 4)
})
return pd.DataFrame(output)
# 测试输出
if __name__ == "__main__":
result = solve()
print(result.to_string(index=False))
示例
输入
solve()
期望输出
公司名称 总资产(亿元) 负债(亿元) 权益(亿元) 验证通过 资产负债率 深物业A 169.88 122.84 47.04 True 0.7231 深科技 273.83 146.01 127.81 True 0.5332 大悦城 1980.61 1519.66 460.95 True 0.7673
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199