← 返回题库
初级

营运资金计算与趋势分析

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    import pandas as pd
    import matplotlib.pyplot as plt
    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()))
    
    # 选取制造业公司(假设代码422)
    company_code = 422
    years = ['2020-12-31', '2021-12-31', '2022-12-31', '2023-12-31']
    df = bs[(bs['Stkcd'] == company_code) & (bs['Accper'].isin(years))].sort_values('Accper')
    
    result = []
    prev_wc = None
    for _, row in df.iterrows():
        wc = row['流动资产合计'] - row['流动负债合计']
        growth = round((wc - prev_wc) / prev_wc * 100, 2) if prev_wc else 0
        result.append({
            '年份': row['Accper'][:4],
            '营运资金(亿元)': round(wc / 1e8, 2),
            '增长率(%)': growth
        })
        prev_wc = wc
    
    # 绘制趋势图
    df_result = pd.DataFrame(result)
    plt.figure(figsize=(10, 6))
    plt.plot(df_result['年份'], df_result['营运资金(亿元)'], 'bo-', linewidth=2, markersize=8)
    plt.title('营运资金趋势分析 (2020-2023)', fontsize=14)
    plt.xlabel('年份', fontsize=12)
    plt.ylabel('营运资金 (亿元)', fontsize=12)
    plt.grid(alpha=0.3)
    plt.tight_layout()
    plt.show()
    
    return df_result.to_string()

示例

输入
solve()
期望输出
年份  营运资金(亿元)  增长率(%)
0  2020    -52.57    0.00
1  2021    -46.15  -12.20
2  2022    -19.36  -58.05
3  2023    -37.31   92.72
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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