对股票财务数据进行分析是非常必要,但因股票数据量很大,单凭浏览网页或在软件客户端查看是非常浪费精力的一件事,通过Python进行网页数据提取,将财务数据图表化会更加直观。以下代码在Python 3.6环境下通过:

注:使用注意,将此代码保存为一个文本文件扩展名为.py,在这个文件同目录下建立二个子目录:数据-分析、数据-下载,也可以更改代码中的路径,否则运行时会报错。

import matplotlib.pyplot as plt

import matplotlib as mpl

from pandas.core.frame import DataFrame

import time

import Chinese as fnt

import pandas as pd

import numpy as np

from matplotlib.ticker import MultipleLocator, FormatStrFormatter

from pylab import *

stock_code = '600366'

# 1、基本面数据下载

tables = pd.read_html("http://quotes.money.163.com/f10/zycwzb_" + stock_code + ",year.html")

i = 0

for table in tables:

if i == 4:

df_tmp = DataFrame(table)

df_tmp.insert(0, '分类',

['报告日期', '基本每股收益(元)', '每股净资产(元)', '每股经营活动产生的现金流量净额(元)', '主营业务收入(万元)', '主营业务利润(万元)', '营业利润(万元)',

'投资收益(万元)', '营业外收支净额(万元)', '利润总额(万元)', '净利润(万元)', '净利润(扣除非经常性损益后)(万元)', '经营活动产生的现金流量净额(万元)',

'现金及现金等价物净增加额(万元)', '总资产(万元)', '流动资产(万元)', '总负债(万元)', '流动负债(万元)', '股东权益不含少数股东权益(万元)',

'净资产收益率加权(%)'])

df_tmp.to_excel('./数据-下载/' + stock_code + '-' + time.strftime("%Y%m", time.localtime()) + '-网易-主要财务指标-年度.xlsx')

elif i == 5:

DataFrame(table).to_excel(

'./数据-下载/' + stock_code + '-' + time.strftime("%Y%m", time.localtime()) + '-网易-主要财务指标-盈利能力.xlsx')

elif i == 6:

DataFrame(table).to_excel(

'./数据-下载/' + stock_code + '-' + time.strftime("%Y%m", time.localtime()) + '-网易-主要财务指标-偿还能力.xlsx')

elif i == 7:

DataFrame(table).to_excel(

'./数据-下载/' + stock_code + '-' + time.strftime("%Y%m", time.localtime()) + '-网易-主要财务指标-成长能力.xlsx')

elif i == 8:

DataFrame(table).to_excel(

'./数据-下载/' + stock_code + '-' + time.strftime("%Y%m", time.localtime()) + '-网易-主要财务指标-营运能力.xlsx')

elif i == 1:

DataFrame(table).to_excel(

'./数据-下载/' + stock_code + '-' + time.strftime("%Y%m", time.localtime()) + '-网易-主要财务指标-基本资料.xlsx')

i += 1

# 2、数据可视化分析

'''

项目及索引值

0 报告日期

1 基本每股收益(元)

2 每股净资产(元)

3 每股经营活动产生的现金流量净额(元)

4 主营业务收入(万元)

5 主营业务利润(万元)

6 营业利润(万元)

7 投资收益(万元)

8 营业外收支净额(万元)

9 利润总额(万元)

10 净利润(万元)

11 净利润(扣除非经常性损益后)(万元)

12 经营活动产生的现金流量净额(万元)

13 现金及现金等价物净增加额(万元)

14 总资产(万元)

15 流动资产(万元)

16 总负债(万元)

17 流动负债(万元)

18 股东权益不含少数股东权益(万元)

19 净资产收益率加权(%)

'''

# 设置绘图全局变量

mpl.rcParams['axes.titlesize'] = 10

mpl.rcParams['xtick.labelsize'] = 9

mpl.rcParams['ytick.labelsize'] = 9

mpl.rcParams['axes.labelsize'] = 9

mpl.rcParams['xtick.major.size'] = 0

mpl.rcParams['ytick.major.size'] = 0

mpl.rcParams['lines.linewidth'] = 0.5

mpl.rcParams['lines.markersize'] = 5

fnt.set_ch('YH', 12)

stock_name = \

pd.read_excel('./数据-下载/' + stock_code + '-' + time.strftime("%Y%m", time.localtime()) + '-网易-主要财务指标-基本资料.xlsx').ix[

0, 0].replace(' ', '')

df_jbcwzb = pd.read_excel(

'./数据-下载/' + stock_code + '-' + time.strftime("%Y%m", time.localtime()) + '-网易-主要财务指标-年度.xlsx')

data_reportDate = df_jbcwzb.ix[0, 1:].sort_index(ascending=False)

plt.figure(figsize=(18, 11))

# plt.tight_layout()

plt.subplots_adjust(left=0.1, bottom=0.1, right=0.9, top=0.9, hspace=0.8, wspace=0.6)

# 1、图一:基本每股收益

ax = plt.subplot2grid((3, 1), (0, 0))

data_jbmgsy = df_jbcwzb.ix[1, 1:].replace('--', '0').sort_index(ascending=False)

data_mgjzc = df_jbcwzb.ix[2, 1:].replace('--', '0').sort_index(ascending=False)

data_mgxjl = df_jbcwzb.ix[3, 1:].replace('--', '0').sort_index(ascending=False)

plt.plot(data_reportDate, data_jbmgsy.astype(float), '-+r', label='每股收益')

plt.plot(data_reportDate, data_mgjzc.astype(float), '--om', label='每股净资产')

plt.plot(data_reportDate, data_mgxjl.astype(float), '-.*b', label='每股现金流')

plt.legend()

plt.xticks(data_reportDate, rotation=90)

plt.grid()

# plt.xlabel('年报日期')

plt.ylabel('每 股 指 标')

plt.title(stock_name + '-每股指标')

# 2、图二:扣非净利润

ax2 = plt.subplot2grid((3, 1), (1, 0))

data_kfjlr = df_jbcwzb.ix[11, 1:].replace('--', '0').sort_index(ascending=False)

data_jlr = df_jbcwzb.ix[10, 1:].replace('--', '0').sort_index(ascending=False)

data_zyywsr = df_jbcwzb.ix[4, 1:].replace('--', '0').sort_index(ascending=False)

data_zyywlr = df_jbcwzb.ix[5, 1:].replace('--', '0').sort_index(ascending=False)

plt.plot(data_reportDate, data_zyywsr.astype(float), '-+m', label='主营收入')

plt.plot(data_reportDate, data_zyywlr.astype(float), '--*g', label='主营利润')

plt.plot(data_reportDate, data_jlr.astype(float), '-.+b', label='净利润')

plt.plot(data_reportDate, data_kfjlr.astype(float), ':or', label='扣非净利润')

plt.legend()

plt.xticks(data_reportDate, rotation=90)

# plt.xlabel('年报日期')

plt.ylabel('营 收 利 润')

plt.title(stock_name + '-营收利润')

plt.grid()

# 3、图二:总资产

ax3 = plt.subplot2grid((3, 1), (2, 0))

data_zzc = df_jbcwzb.ix[14, 1:].replace('--', '0').sort_index(ascending=False)

data_zfz = df_jbcwzb.ix[16, 1:].replace('--', '0').sort_index(ascending=False)

plt.plot(data_reportDate, data_zzc.astype(float), '--+r', label='总资产')

plt.plot(data_reportDate, data_zfz.astype(float), '-.ob', label='总负债')

plt.legend()

plt.xticks(data_reportDate, rotation=90)

# plt.xlabel('年报日期')

plt.ylabel('资 产 负 债')

plt.title(stock_name + '-资产负债')

plt.grid()

plt.savefig('./数据-分析/' + stock_name + '-' + time.strftime("%Y%m", time.localtime()) + '-网易-主要财务指标-年度.png', dpi=600)

plt.show()

python资本市场财务数据分析_Python对股票财务数据进行可视化分析相关推荐

  1. python资本市场财务数据分析_Python学习教程:用Python进行金融市场文本数据的情感计算...

    今天我们的Python学习教程找点财经类新闻文本数据用Python来做点简单的情感分析. 一.tushare介绍 tushare库是目前比较流行的开源免费的经济数据库,tushare有普通版和高级版, ...

  2. python资本市场财务数据分析统计服_python股票财务数据分析统计服|蓝田制作项目并购估值...

    高质量增长取得多方认可.高盛研报称,认可碧桂园1直以来的执行力以及说到做到,置信 公司会持续 维持将来 几年的疾速 开展 .项目融资 课件,北京项目融资模式 守护绿色家园 保住生态根基PPP项目融资项 ...

  3. python资本市场财务数据分析_史上最全的上市公司财务数据

    就是三个报表的项目.我晕.哪个数据库都能下吧. 这个还需要整理三个月? 气.... 股票代码 年度 股票简称 公司中文名 公司英文名 CSRC行业分类 GICS行业分类 地区 交易所 中小企业板标示 ...

  4. python用于财务数据分析_财务数据分析进阶之路

    从一个人生故事说起 刚从学校毕业的年轻人,选定一个方向,开始探索. 几年以后,探索到了边界,用力推开一扇门,勇敢的跨进去,点亮了更大的世界. 又过了许久,再次来到世界尽头,再次努力突破天花板,又见到了 ...

  5. python进行探索性数据分析EDA(Exploratory Data Analysis)分析

    python进行探索性数据分析EDA(Exploratory Data Analysis)分析 show holy respect to python community, for there ded ...

  6. 数据分析 | 如何对年终销售数据进行可视化分析快速搞定统计图表

    数据分析 | 如何对年终销售数据进行可视化分析,快速搞定统计图表 以下文章由:聂永真可视化设计实验室 整理. 等信息 年终将近,又到拿数据来做总结汇报时.作为销售部的管理者或是销售人员,你还在拿着一张 ...

  7. 天池:数据分析达人赛1:用户情感可视化分析

    [教学赛]数据分析达人赛1:用户情感可视化分析 赛题背景 赛题以网络舆情分析为背景,要求选手根据用户的评论来对品牌的议题进行数据分析与可视化.通过这道赛题来引导常用的数据可视化图表,以及数据分析方法, ...

  8. 【Python】爬取中国历史票房榜,可视化分析

    [Python]爬取中国历史票房榜,可视化分析 最近电影<哪吒之魔童转世>票房已经超过<流浪地球>,<复联4>.升到中国内地票房第二位.就好有哪些电影排进了历史票房 ...

  9. 用python实行财务报告分析,用python做财务数据分析

    Python是否有用于财务报表分析的库 谷歌人工智能写作项目:小发猫 python如何做数据分析 用Python做数据分析,大致流程如下:1.数据获取可以通过SQL查询语句来获取数据库中想要数据typ ...

最新文章

  1. C# 2.0 的partial
  2. Codeforces 1499D - The Number of Pairs(数论 + 组合计数)
  3. JS 关闭window.open的窗体,并刷新父页面
  4. Android 判断当前屏幕是横屏还是竖屏
  5. 动态创建DataGrid的模版列(转)
  6. [云炬ThinkPython阅读笔记]2.6 字符串运算
  7. 冒死揭秘安利_赵丽颖新剧开播备受争议?冒死安利
  8. Java并发编程的基础-线程的生命周期
  9. (转)基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用...
  10. 【转】Postman 使用方法详解
  11. 【图像隐写】基于matlab GUI DCT+FFT数字水印嵌入+攻击+提取(带面板)【含Matlab源码 1760期】
  12. CSAPP:BombLab
  13. 百度charts_NBA Shot Charts:更新
  14. MatlabSimulink中找不到Carsim_s_function的解决办法
  15. Java发起GET请求的二三事
  16. 合作对策模型的简单实现
  17. 垂直水平居中的几种实现方式
  18. 三.Oracle常用数据类型及单行函数总结
  19. linphone 手机上不能接听电话
  20. 黄仁勋:英伟达收购 ARM 是谣言,下周发布会有惊喜

热门文章

  1. CoinEx将于8月6日开启Spice加速器申购
  2. Go语言——怎样导入一个外部的包
  3. 基于XFS的NAS数据恢复可以做了
  4. 《linux 内核全然剖析》 mktime.c
  5. linux 学习 14 日志管理
  6. Hadoop 4、Hadoop MapReduce的工作原理
  7. iOS开发-UITextField手机号和邮箱验证
  8. IBM投资4000万美圆,加强对SAP®应用的支持
  9. 如何处理海量数据(上):从并发编程到分布式系统
  10. 6 关于数据仓库维度数据处理的方法探究系列——缓慢变化维处理——记录最新记录及上一次历史...