python——计算财务数据

bdbc155f9568475d991740e98a244c49.png

下载中国船舶(600150),中船防务(600685),中国重工(601989)三家公司的财务报表,分别计算以下数据,每家公司的数据存放在一个DataFrame中
1.中国船舶2014-2023年的资产负债率(总负债/总资产),净资产收益率(净利润/所有者权益合计),总资产报酬率(净利润/总资产)
2.中船防务2014-2023年的经营活动现金净流量,投资活动现金净流量,筹资活动现金净流量以及现金净流量净增加额
3.中国重工和中船防务2019-2023年的总资产周转率(营业收入/总资产)对比

 

分析:首先导入pandas库,它是用于数据处理和分析的强大工具。
对于中国船舶的数据,创建了一个字典china_ship_data,其中包含了资产负债率、净资产收益率和总资产报酬率的数据。然后使用这个字典创建了一个DataFrame对象df_china_ship,并指定了索引为 2023 到 2014 年。
对于中船防务的数据,创建了一个字典china_defense_data,包含了经营活动、投资活动、筹资活动产生的现金流量净额和现金及现金等价物净增加额的数据。使用这个字典创建了DataFrame对象df_china_defense,索引同样为 2023 到 2014 年。
对于中国重工和中船防务的总资产周转率数据,创建了一个字典turnover_data,并使用它创建了DataFrame对象df_turnover,索引为 2023 到 2019 年。
最后,分别打印了这三个DataFrame,以展示数据。

import pandas as pd
# 1. 中国船舶2014 - 2023年的财务比率
china_ship_data = {
    '资产负债率': [0.704932, 0.689239, 0.668931, 0.653623, 0.524987, 0.544530, 0.713435, 0.678786, 0.621197, 0.621678],
    '净资产收益率': [0.056309, - 0.006777, 0.004366, - 0.011023, 0.024515, 0.029323, - 0.169669, float('NaN'), float('NaN'), float('NaN')],
    '总资产报酬率': [0.016615, - 0.002106, 0.001446, - 0.003818, 0.011645, 0.013356, - 0.048621, float('NaN'), float('NaN'), float('NaN')]
}
df_china_ship = pd.DataFrame(china_ship_data, index=range(2023, 2013, - 1))
# 2. 中船防务2014 - 2023年的现金流量数据
china_defense_data = {
    '经营活动产生的现金流量净额(万元)': [331196.83, 201503.32, 436518.42, - 102440.74, 373555.40, - 154491.01, - 84721.69, - 376107.36, - 105825.21, 85522.44],
    '投资活动产生的现金流量净额(万元)': [- 310046.19, 347198.48, - 338194.19, - 347070.50, - 278469.76, - 179236.17, 213137.27, 579294.95, 19291.23, - 16242.59],
    '筹资活动产生的现金流量净额(万元)': [- 162320.40, 12185.68, - 126581.56, - 45651.05, 119103.71, 18010.09, 48919.55, - 180673.44, 152722.72, - 20388.36],
    '现金及现金等价物净增加额(万元)': [- 136882.52, 565292.37, - 30230.56, - 496412.37, 214667.54, - 309776.68, 154511.14, 6278.98, 89120.99, 51687.21]
}
df_china_defense = pd.DataFrame(china_defense_data, index=range(2023, 2013, - 1))
# 3. 中国重工和中船防务2019 - 2023年的总资产周转率
turnover_data = {
    '中国重工': [0.317443, 0.275284, 0.263673, 0.298130, 0.417348],
    '中船防务': [0.236371, 0.233751, 0.219493, 0.202464, 0.208356] }
df_turnover = pd.DataFrame(turnover_data, index=range(2023, 2018, - 1))
# 打印数据
print("中国船舶2014 - 2023年财务比率:")
print(df_china_ship)
print("\n中船防务2014 - 2023年现金流量数据:")
print(df_china_defense)
print("\n中国重工和中船防务2019 - 2023年总资产周转率:")
print(df_turnover)

 

 

### 使用Python处理和分析财务数据 #### 数据准备阶段 在进行任何类型的财务数据分析之前,确保拥有高质量的数据至关重要。通常这些数据可以从公司内部系统导出,也可以通过网络爬虫从公开资源获取。对于后者,在线API接口提供了便捷的方式访问大量结构化金融信息[^4]。 ```python import pandas as pd from alpha_vantage.timeseries import TimeSeries api_key = 'your_api_key_here' ts = TimeSeries(key=api_key, output_format='pandas') data, meta_data = ts.get_daily(symbol='MSFT', outputsize='full') # 获取微软股票每日行情 ``` 这段代码展示了如何利用`alpha_vantage`库来调用Alpha Vantage API并下载特定证券的历史价格记录。这只是一个简单的例子;实际应用中可能还需要考虑更多因素,比如异常值检测、缺失值填补等预处理工作[^3]。 #### 数据清洗与转换 一旦获得了原始数据文件(CSV/XLSX),下一步就是加载它们到Pandas DataFrame对象里以便进一步操作: ```python df = pd.read_csv('financial_data.csv') # 去除重复行 df.drop_duplicates(inplace=True) # 处理缺失值 df.fillna(method='ffill', inplace=True) # 向前填充法补全NA/NaN项 ``` 这里使用了Pandas库来进行基本的数据清理任务,包括删除冗余条目以及采用向前填充的方法解决空缺数值问题。这样的准备工作能够显著提高后续统计模型训练的效果准确性[^1]。 #### 财务指标计算 基于整理后的表格,可以开始构建各种有意义的关键绩效指数(KPIs),例如净利润率(Net Profit Margin)、资产回报率(Return on Assets): ```python def calculate_net_profit_margin(income_statement_df): net_income = income_statement_df['netIncome'] total_revenue = income_statement_df['totalRevenue'] return (net_income / total_revenue).mean() profitability_ratio = calculate_net_profit_margin(df[['netIncome', 'totalRevenue']]) print(f'平均净利率为 {round(profitability_ratio * 100, 2)}%') ``` 上述函数接受利润表中的两列作为输入参数——即“净收入(netIncome)” 和 “总收入(totalRevenue)”, 计算得出企业的长期盈利水平均值,并将其打印出来供审查人员参考[^2]。 #### 可视化展示成果 最后一步是将所得结论直观呈现给决策者们查看。Matplotlib是一个非常适合绘制静态图表的选择之一: ```python import matplotlib.pyplot as plt plt.figure(figsize=(8,6)) plt.plot(data.index.values[-7:], data['close'][-7:]) plt.title('最近一周收盘价走势') plt.xlabel('日期') plt.ylabel('股价($)') plt.grid(True) plt.show() ``` 此段脚本创建了一个折线图用来表示过去七天内某只个股的价格变动趋势。图形化的表达方式有助于快速理解复杂的信息流,从而辅助管理层做出更明智的投资判断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值