python之股票财务分析

#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['长期应付款'])*100font1 = {'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.xdnf.cn/news/146948.html

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

相关文章

检测防火墙是否开启、判断程序是否加入防火墙白名单(附源码)

VC常用功能开发汇总&#xff08;专栏文章列表&#xff0c;欢迎订阅&#xff0c;持续更新...&#xff09;https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门到精通系列教程&#xff08;专栏文章列表&#xff0c;欢迎订阅&#xff0c;持续更新...&a…

车牌超分辨率:License Plate Super-Resolution Using Diffusion Models

论文作者&#xff1a;Sawsan AlHalawani,Bilel Benjdira,Adel Ammar,Anis Koubaa,Anas M. Ali 作者单位&#xff1a;Prince Sultan University 论文链接&#xff1a;http://arxiv.org/abs/2309.12506v1 内容简介&#xff1a; 1&#xff09;方向&#xff1a;图像超分辨率技术…

Java栈的压入、弹出序列(详解)

目录 1.题目描述 2.题解 方法1 方法2 1.题目描述 输入两个整数序列&#xff0c;第一个序列表示栈的压入顺序&#xff0c;请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序&#xff0c;序列4,5,3,2,1是该压栈序…

凉鞋的 Unity 笔记 104. 测试所涉及的窗口

104. 测试所涉及的窗口 在上一篇&#xff0c;笔者简单介绍了检视器窗口&#xff0c;如图所示&#xff1a; 我们接着介绍上图中的最后一个部分内容&#xff0c;测试部分。 测试部分我们只做了一件非常简单的操作&#xff0c;就是点击了一下运行按钮&#xff0c;查看结果&#…

行为型设计模式——责任链模式

摘要 责任链模式(Chain of responsibility pattern): 通过责任链模式, 你可以为某个请求创建一个对象链. 每个对象依序检查此请求并对其进行处理或者将它传给链中的下一个对象。 一、责任链模式意图 职责链模式&#xff08;Chain Of Responsibility&#xff09; 是一种行为设…

c语言练习73:统计位数为偶数的数字

统计位数为偶数的数字 给你⼀个整数数组 nums &#xff0c;请你返回其中位数为 偶数 的数字的个数。 • ⽰例 1&#xff1a; 输⼊&#xff1a;nums [12,345,2,6,7896] 输出&#xff1a;2 解释&#xff1a; 12 是 2 位数字&#xff08;位数为偶数&#xff09; 345 是 3 位…

Python 数据分析与挖掘(一)

Python 数据分析与挖掘&#xff08;数据探索&#xff09; 数据探索 1.1 需要掌握的工具&#xff08;库&#xff09; 1.1.1 Nump库 Numpy 提供多维数组对象和各种派生对象&#xff08;类矩阵&#xff09;&#xff0c;利用应用程序接口可以实现大量且繁琐的数据运算。可以构建…

【Java 进阶篇】MySQL 多表查询详解

MySQL 是一个强大的关系型数据库管理系统&#xff0c;多表查询是数据库操作中的重要部分之一。多表查询允许您从多个表中检索和操作数据&#xff0c;以满足复杂的数据需求。本文将介绍 MySQL 多表查询的基本概念、语法和示例&#xff0c;以及一些常见的多表查询场景。 什么是多…

SpringCloud篇

SpringCloud五大组件是啥&#xff1f; rabbin gateway feign 注册中心&#xff08;nacos,Eureka&#xff09;,服务保护 &#xff08;sentinel&#xff09; &#xff1b; nacos和eureka的区别是什么&#xff1f; 负载均衡是如何实现的&#xff1f;&#xff1f; ribbon负载策略…

【数据结构】排序之插入排序和选择排序

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;数据结构 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、排序的概念及其分类 &#x1f4d2;1.1排序的概念 &#x1f4d2;1.2排序…

朝气蓬勃 后生可畏

介绍: 线段树是一棵二叉搜索树,思想与分治很想,把一段区间平分平分再平分,平分到不能平分为止,可以进行方便的区间修改和区间查询,当然,树状数组能做的单点修改、单点查询,线段树也可以更好地实现,总之,线段树是树状数组的升级版,此外,线段树能做的平衡树也能做,但…

Ubuntu镜像源cn.arichinve.ubuntu.com不可用原因分析和解决

文章目录 Ubuntu查看系统版本Ubuntu更新系统不能更新Ubuntu查看APT更新源配置cn.archive.ubuntu.com已经自动跳转到清华镜像站Ubuntu变更镜像源地址备份原文件批量在VIM中变更 Ubuntu国内镜像站推荐推荐阅读 今天想要在Ubuntu环境下搭建一个测试环境&#xff0c;进入Ubuntu系统…

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

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

【算法系列篇】哈希表

文章目录 前言1. 两数之和1.1 题目要求1.2 做题思路1.3 Java代码实现 2. 判断是否为字符重排2.1 题目要求2.2 做题思路2.3 Java代码实现 3. 存在重复元素3.1 题目要求3.2 做题思路3.3 Java代码实现 4. 存在重复元素II4.2 题目要求4.2 做题思路4.3 Java代码实现 5. 字母异位词分…

javascript: Sorting Algorithms

// Sorting Algorithms int JavaScript https://www.geeksforgeeks.org/sorting-algorithms/ /** * file Sort.js * 1. Bubble Sort冒泡排序法 * param arry * param nszie */ function BubbleSort(arry, nszie) {var i, j, temp;var swapped;for (i 0; i < nszie - 1; i)…

【算法】动态规划

文章目录 概述背包问题01背包问题&#xff1a;代码示例部分背包代码示例 完全背包代码示例 多重背包代码示例 总结提升 概述 动态规划&#xff08;Dynamic Programming&#xff09;是一种通过将问题划分为相互重叠的子问题来解决问题的算法思想。其核心思想是通过保存已经计算…

网络工程师怎么才算学好

学网络工程师怎么样才算学好&#xff1f;这个朋友他说他现在准备跟我学这个网络工程师。他说他理解的网络工程师就是要不断的在技术上进行积累&#xff0c;至于产品还有客户&#xff0c;他不知道该怎么样以后去学习。我先说一下这个网络工程师你在课程或者技术上学习&#xff0…

Academic accumulation|社会创业研究:过去的成就和未来的承诺

文献来源&#xff1a;Saebi T, Foss N J, Linder S. Social entrepreneurship research: Past achievements and future promises[J]. Journal of management, 2019, 45(1): 70-95. 一、文章介绍 &#xff08;一&#xff09;文章主要包含什么&#xff1f; SE越来越受到学术界的…

中睿天下荣获2023全国智能驾驶测试赛车联网安全比赛第一名

9月24日&#xff0c;由工业和信息化部、公安部、交通运输部、中国科学技术协会、北京市人民政府共同主办的2023世界智能网联汽车大会展览会在北京闭幕。同期举行的全国智能驾驶测试赛&#xff08;京津冀赛区&#xff09;宣布比赛结果&#xff0c;中睿天下凭借过硬的产品实力&am…

了解”变分下界“

“变分下界”&#xff1a;在变分推断中&#xff0c;我们试图找到一个近似概率分布q(x)来逼近真实的概率分布p(x)。变分下界是一种用于评估近似概率分布质量的指标&#xff0c;通常用来求解最优的近似分布。它的计算涉及到对概率分布的积分或期望的估计