python之股票财务分析

news2025/4/5 15:11:34

#import akshare as ak
import pandas as pd
import matplotlib.pyplot as plt
symbol1="资产负债表"
symbol2="利润表"
symbol3="现金流量表"
#df1=ak.stock_financial_report_sina(stock="601633",symbol=symbol1)
#df2=ak.stock_financial_report_sina(stock="601633",symbol=symbol2)
#df3=ak.stock_financial_report_sina(stock="601633",symbol=symbol3)
#df1.to_csv(f'{symbol1}.csv')
#df2.to_csv(f'{symbol2}.csv')
#df3.to_csv(f'{symbol3}.csv')
data1=pd.read_csv(f'{symbol1}.csv')
data2=pd.read_csv(f'{symbol2}.csv')
data3=pd.read_csv(f'{symbol3}.csv')
data1.index = pd.to_datetime(data1['报告日'], format='%Y%m%d')
data2.index = pd.to_datetime(data2['报告日'], format='%Y%m%d')
data3.index = pd.to_datetime(data3['报告日'], format='%Y%m%d')
data1=data1.fillna(0)
data2=data2.fillna(0)
data3=data3.fillna(0)
#有息负债率=(短期借款+1年内到期的长期负债+长期借款+应付债券+长期应付款)/总资产×100%
yxfz=data1['短期借款']+data1['一年内到期的非流动负债']+data1['长期借款']+data1['应付债券']+data1['长期应付款']
ibdr=yxfz/data1['资产总计']*100
#生产资产/总资产
sz=(data1['固定资产净值']+data1['在建工程合计'])/data1['资产总计']*100
#应收/总资产
yz=(data1['应收票据及应收账款']+data1['应收款项融资']+data1['应收股利']+data1['应收利息']/10000+data1['应收保费']+data1['应收分保账款']+data1['应收分保合同准备金']+data1['应收出口退税']+data1['应收补贴款']+data1['应收保证金']+data1['内部应收款']+data1['其他应收款']+data1['长期应收款'])/data1['资产总计']*100
#货币资金/有息负债
hy=data1['货币资金']/(data1['短期借款']+data1['一年内到期的非流动负债']+data1['长期借款']+data1['应付债券']+data1['长期应付款'])*100

font1 = {'family': 'SimHei', 'weight': 'normal', 'size': 10}
clist=['blue','red','green','black','slategray','lime','gold','purple','green','cyan']
markerlst=['o','*','x','>','<','^','D','d','1','2','3','4']
linestylelst=['-','--','-.',':','-','--','-.',':','-','--','-.',':']
fig=plt.figure(1)
plt.rcParams['xtick.direction'] = 'in'  # 将x周的刻度线方向设置向内
plt.rcParams['ytick.direction'] = 'in'  # 将y轴的刻度方向设置向内
# plt.rcParams['font.family'] = ["Times New Roman"]  # 字体设置为Times NewRoman
plt.rcParams['font.sans-serif'] = ['SimHei']

plt.plot(data1['报告日'],ibdr,c=clist[0], marker=markerlst[1], markersize='10', linewidth='3', linestyle=linestylelst[1], label='有息负债率')
plt.plot(data1['报告日'],sz,c=clist[1], marker=markerlst[2], markersize='10', linewidth='3', linestyle=linestylelst[2], label='生产资产/总资产')
plt.plot(data1['报告日'],yz,c=clist[2], marker=markerlst[3], markersize='10', linewidth='3', linestyle=linestylelst[3], label='应收/总资产')
#plt.plot(data['报告日'],hy,c=clist[3], marker=markerlst[4], markersize='10', linewidth='3', linestyle=linestylelst[4], label='货币资金/有息负债')

# 图例展示位置,数字代表第几象限
plt.legend(bbox_to_anchor=(0.5,1.1),loc=9,prop=font1,ncol=3,framealpha=0.5)
#plt.xticks(xs)
#plt.yticks(np.linspace(0,0.16,11))
plt.grid(True, linestyle='--', alpha=0.5)
plt.xlabel("报告期", fontdict={'size': 16})
plt.ylabel("百分比(%)", fontdict={'size': 16})
fig.autofmt_xdate()

fig=plt.figure(2)
plt.rcParams['axes.unicode_minus']=False
plt.rcParams['xtick.direction'] = 'in'  # 将x周的刻度线方向设置向内
plt.rcParams['ytick.direction'] = 'in'  # 将y轴的刻度方向设置向内
# plt.rcParams['font.family'] = ["Times New Roman"]  # 字体设置为Times NewRoman
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.plot(data3['报告日'],data3['经营活动产生的现金流量净额'],c=clist[0], marker=markerlst[1], markersize='10', linewidth='3', linestyle=linestylelst[1], label='经营活动产生的现金流量净额')
plt.plot(data3['报告日'],data3['投资活动产生的现金流量净额'],c=clist[1], marker=markerlst[2], markersize='10', linewidth='3', linestyle=linestylelst[2], label='投资活动产生的现金流量净额')
plt.plot(data3['报告日'],data3['筹资活动产生的现金流量净额'],c=clist[2], marker=markerlst[3], markersize='10', linewidth='3', linestyle=linestylelst[3], label='筹资活动产生的现金流量净额')
plt.plot(data2['报告日'],data2['净利润'],c=clist[3], marker=markerlst[4], markersize='10', linewidth='3', linestyle=linestylelst[4], label='净利润')
# 图例展示位置,数字代表第几象限
plt.legend(bbox_to_anchor=(0,1),loc=2,prop=font1,ncol=1,framealpha=0.5)
#plt.xticks(xs)
#plt.yticks(np.linspace(0,0.16,11))
plt.grid(True, linestyle='--', alpha=0.5)
plt.xlabel("报告期", fontdict={'size': 16})
plt.ylabel("元", fontdict={'size': 16})
fig.autofmt_xdate()

fig=plt.figure(3)
plt.rcParams['axes.unicode_minus']=False
plt.rcParams['xtick.direction'] = 'in'  # 将x周的刻度线方向设置向内
plt.rcParams['ytick.direction'] = 'in'  # 将y轴的刻度方向设置向内
# plt.rcParams['font.family'] = ["Times New Roman"]  # 字体设置为Times NewRoman
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.plot(data3['报告日'],data3['期末现金及现金等价物余额'],c=clist[0], marker=markerlst[1], markersize='10', linewidth='3', linestyle=linestylelst[1], label='期末现金及现金等价物余额')
plt.plot(data1['报告日'],yxfz,c=clist[1], marker=markerlst[2], markersize='10', linewidth='3', linestyle=linestylelst[2], label='有息负债')
plt.plot(data3['报告日'],data3['销售商品、提供劳务收到的现金'],c=clist[2], marker=markerlst[3], markersize='10', linewidth='3', linestyle=linestylelst[3], label='销售商品、提供劳务收到的现金')
plt.plot(data2['报告日'],data2['营业收入'],c=clist[3], marker=markerlst[4], markersize='10', linewidth='3', linestyle=linestylelst[4], label='营业收入')
plt.plot(data3['报告日'],data3['现金及现金等价物净增加额']+data3['分配股利、利润或偿付利息所支付的现金'],c=clist[4], marker=markerlst[5], markersize='10', linewidth='3', linestyle=linestylelst[5], label='现金及现金等价物净增加额')
# 图例展示位置,数字代表第几象限
plt.legend(bbox_to_anchor=(0,1),loc=2,prop=font1,ncol=1,framealpha=0.5)
#plt.xticks(xs)
#plt.yticks(np.linspace(0,0.16,11))
plt.grid(True, linestyle='--', alpha=0.5)
plt.xlabel("报告期", fontdict={'size': 16})
plt.ylabel("元", fontdict={'size': 16})
fig.autofmt_xdate(bottom=0.2, rotation=30, ha='right')
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1056081.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux CentOS7 vim多窗口编辑

我们在用vim编辑文件时&#xff0c;有各种需求。如有时需要在多个文件之间来回操作&#xff0c;一会关闭一个文件&#xff0c;一会再打开另外一个文件&#xff0c;这样来回操作显得太笨拙。有时&#xff0c;vim编辑多行的大文件&#xff0c;来回查看、编辑前面一部分及最后一部…

《从零开始的Java世界》03面向对象(进阶)

《从零开始的Java世界》系列主要讲解Javase部分&#xff0c;从最简单的程序设计到面向对象编程&#xff0c;再到异常处理、常用API的使用&#xff0c;最后到注解、反射&#xff0c;涵盖Java基础所需的所有知识点。学习者应该从学会如何使用&#xff0c;到知道其实现原理全方位式…

竞赛 机器学习股票大数据量化分析与预测系统 - python 竞赛

文章目录 0 前言1 课题背景2 实现效果UI界面设计web预测界面RSRS选股界面 3 软件架构4 工具介绍Flask框架MySQL数据库LSTM 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 机器学习股票大数据量化分析与预测系统 该项目较为新颖&am…

使用 ClassFinal 对 java class 文件进行加密防止反编译

ClassFinal 是一款 java class文件安全加密工具&#xff0c;支持直接加密 jar 包或 war 包&#xff0c;无需修改任何项目代码&#xff0c;兼容 spring-framework&#xff1b;可避免源码泄漏或字节码被反编译 特点 无需修改原项目代码&#xff0c;只要把编译好的jar/war包用本工…

媒体梦工厂AI智聊:轻松提升工作效率的智能助手

在信息爆炸的时代&#xff0c;如何快速、准确地获取和处理信息&#xff0c;成为提高工作效率的关键。媒体梦工厂最新推出的AI智聊功能&#xff0c;为您提供了全新的解决方案&#xff0c;让您在工作和生活中轻松提升效率。 首先&#xff0c;我们要进入好简单批量智剪的主页面&am…

643. 子数组最大平均数I(滑动窗口)

目录 一、题目 二、代码 一、题目 643. 子数组最大平均数 I - 力扣&#xff08;LeetCode&#xff09; 二、代码 class Solution { public:double findMaxAverage(vector<int>& nums, int k) {double Average INT_MIN;double sum nums[0];int left 0, right 0…

2023年10月报价:腾讯云服务器租用价格表_轻量_CVM_GPU

阿里云服务器10月报价表来了&#xff0c;和9月份价格差不多&#xff0c;再等一个月就到腾讯云双十一优惠活动了&#xff0c;腾讯云百科先来说说10月腾讯云服务器优惠价格表&#xff1a;轻量应用服务器2核2G3M带宽95元一年、2核4G5M带宽218元一年、2核2G4M带宽三年价540元一年、…

绘制李萨如图,数据保存excel,txt

前置 看到网络上绘制的这么漂亮的数学图形&#xff0c;觉得能够用一个代码绘制全部的这些图形&#xff0c;就能提高不少效率&#xff0c;所以于是就心血来潮&#xff1a; 这是一个绘制李萨如图并保存数据的Python代码示例。下面是每行注释的详细解释&#xff1a; import os …

面试5g通信工程师对方要看芝麻信用分靠谱吗

大家好&#xff0c;我是网络工程师成长日记实验室的郑老师&#xff0c;您现在正在查看的是网络工程师成长日记专栏&#xff0c;记录网络工程师日常生活的点点滴滴 有个大兄弟说&#xff0c;他在深圳龙岗去面试5G网络优化工程师。对方说刚入职多少钱&#xff0c;工作一段时间多少…

内网信息收集

1.内网基本步骤 2.收集本机信息 3.查询当前用户 4.判断域存在不 看域名和ip是不是一个内网 5.查看域内主机 6.扫描域内主机端口 7.收集域内基本信息 8.查找域控 9.查看域内用户和管理员信息 10.定位域管理员 11.查看域管理进程 12.域管理员方法 13.利用powershell收集…

SpringCloud Alibaba - 基于 FeignClient 整合 Sentinel,实现“线程隔离”和“熔断降级”

目录 一、FeignClient 整合 Sentinel 1.1、整合原因 1.2、实现步骤 1.2.1、修改 OrderService 中的 application.yml 文件 1.2.2、给 FeignClient 编写失败后的降级逻辑 二、线程隔离 2.1、线程隔离的两种方式 2.1.1、线程池隔离 2.1.2、信号量隔离&#xff08;Sentin…

c#设计模式-结构型模式 之 享元模式

&#x1f680;简介 享元模式&#xff08;Flyweight Pattern&#xff09;是一种用于性能优化的模式&#xff0c;其核心是运用共享技术来有效支持大量细粒度的对象。享元模式可以避免大量非常相似类的开销。在程序设计中&#xff0c;有时需要生成大量细粒度的类实例来表示数据。…

FPGA行业应用二:通用仪器行业

通用仪器指的是电子测试技术中涉及的仪器仪表&#xff0c;如&#xff1a;万用表&#xff0c;示波器&#xff0c;信号发生器&#xff0c;波形发生器&#xff0c;频谱分析仪&#xff0c;功率计&#xff0c;电源&#xff0c;等…… 用于测量&#xff0c;测试&#xff0c;控制&…

C语言编译与链接过程详解

C语言编译与链接过程详解 源文件 main.c #include <stdio.h>extern int data; extern int add(int a,int b);int a1; int a2 0; int a3 10;static int b1; static int b2 0; static int b3 20;int main() {int c1;int c2 0;int c3 30;static int d1;static int …

QQ通信协议

不管UDP还是TCP&#xff0c;最终登陆成功之后&#xff0c;QQ都会有一个TCP连接来保持在线状态。这个TCP连接的远程端口一般是80&#xff0c;采用UDP方式登陆的时候&#xff0c;端口是8000。因此&#xff0c;假如你所在的网络开放了80端口&#xff08;80端口是最常用端口。。就是…

轻松掌握二叉树和堆(保姆级详解,小白必看系列)

目录 一、前言 二、二叉树的概念和结构 &#x1f34e;二叉树的概念 &#x1f350;特殊的二叉树&#xff08;重点&#xff09; &#x1f349;二叉树的性质 &#xff08;超重点------面试做题会用&#xff09; &#x1f353;二叉树的概念选择题 &#x1f34c;二叉树的存储…

三、逻辑代数基础

1.简介 在数字电路中&#xff0c;我们用两种数码1和0来表示一个信号的两种不同的逻辑状态。 例如&#xff1a;用1表示开关闭合&#xff0c;电路导通&#xff1b;用0表示开关打开&#xff0c;电路断开。 这两种对立的逻辑关系就称之为二值逻辑。 当两种数码表示不同的逻辑状态…

Acwing 845. 八数码

Acwing 845. 八数码 知识点题目描述思路讲解代码展示 知识点 BFS 题目描述 思路讲解 分析一下y总的思路&#xff0c;也相当于做个课堂笔记吧&#xff08;这也太巧妙了吧&#xff0c;讲解视频不到20分钟&#xff0c;我愣是半天没想出来 1、题目的目标 2、移动情况 移动方式…

基于Java的城市天然气费管理系统的设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

S5PV210裸机(一):裸机基础,arm指令,210启动刷机

本文主要探讨s5pv210裸机基础知识&#xff0c;arm指令&#xff0c;以及210启动刷机相关知识。 Soc与cpu Soc是cpu与其他外设的集合即SoC<>cpuDDRflashutral...... 地址总线与数据总线 cpu通过地址总线寻址即传输DDR或flash等地址,通过数据总线与外设进…