数据分析实例-平安银行股票分析

news/2025/1/14 9:08:37/

本次项目以2020年平安银行的股票信息来进行数据分析

开发工具:jupyter notebook

首先导入本次项目用到的包

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
import warnings
warnings.filterwarnings('ignore') # 忽略警告
plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文显示
plt.rcParams['axes.unicode_minus'] = False   #解决符号无法显示

导入原始数据

data = pd.read_csv('2020_pinganbank_hist_dat (1).csv') # 导入原始数据
data.head()

1) 数据只保留日期(date)、开盘价(open)、收盘价(close)、成交量(volume)、涨跌幅(p_change)和换手率(turnover)这几个属性,并按时间先后顺序对数据进行排序。

data = data[['date','open','close','volume','p_change','turnover']]  # 导入数据,只保留日期(date)、开盘价(open)、收盘价(close)、成交量(volume)、涨跌幅(p_change)和换手率(turnover)这几个属性
data.sort_values(by='date',inplace=True) # 按时间先后顺序对数据进行排序
data.head() # 展示数据前五行

2.绘制出开盘价(open)和收盘价(close)的走势折线图,注意 X 轴绘制字符重叠问题的处理;

plt.figure(figsize=(15,8)) # 画布大小
plt.plot(data['date'],data['open'],label='开盘价') # 开盘价折线图
plt.plot(data['date'],data['close'],label='收盘价') # 收盘价折线图
ax = plt.gca()  # 处理x轴字符重叠问题
data_format = mpl.dates.DateFormatter('%m-%d')  # 处理x轴字符重叠问题
ax.xaxis.set_major_formatter(data_format)   # 处理x轴字符重叠问题
xlocator = mpl.ticker.MultipleLocator(7)    # 处理x轴字符重叠问题
ax.xaxis.set_major_locator(xlocator)    # 处理x轴字符重叠问题
plt.xticks(rotation=45) # 将x轴标签旋转45°
plt.legend(loc='upper center') # 添加图例
plt.show()

3.输出这一年内成交量(volume)最低和最高那两天的日期和分别的成交量以及收盘价(close)和换手率(turnover);

heigher = data['volume'].sort_values().index[-1]  # 成交量最高那天的数据
lower = data['volume'].sort_values().index[0]  # 成交量最低那天的数据
data[(data.index == lower) | (data.index == heigher)][['date','volume','close','turnover']] # 成交量(volume)最低和最高那两天的日期和分别的成交量以及收盘价(close)和换手率(turnover)

4.以成交量(volume)为 X 轴,收盘价(close)为 Y 轴,绘制出散点图,分析收盘价和成交量之间是否存在关联

plt.figure(figsize=(15,8))  # 画布大小
plt.scatter(x=data['volume'],y=data['close'])   # 画散点图
plt.xlabel('成交量',fontsize=15)     # x轴标签
plt.ylabel('收盘价',fontsize=15)    # y轴标签
plt.title('成交量与收盘价的关系',fontsize=15)   # 图的标题
plt.show()  # 从图看出没有相关关系

5.列出成交量(volume)在 1100000 以上且换手率(turnover)在 0.5 以上的记录,分析成交量和换手率之间是否存在关联

data1 = data[(data['volume'] > 1100000) & (data['turnover'] > 0.5)] # 成交量(volume)在 1100000 以上且换手率(turnover)在 0.5 以上的记录
data1

plt.figure(figsize=(15,8)) # 画布大小
plt.scatter(x=data1['volume'],y=data1['turnover']) # 画散点图
plt.xlabel('成交量',fontsize=15) # x轴标签
plt.ylabel('换手率',fontsize=15) # y轴标签
plt.title('成交量与换手率的关系',fontsize=15)  # 图的标题
plt.show() # 从图中看出具有较强的正相关性

 

6. 统计这一年中收盘价(close)高于开盘价(open)的天数,占今年总交易日的比率,如果每天以收盘价购买 1000 股,第二天以开盘价卖出 1000股,一年的收益是多少;

heigher_day = data[data['close'] > data['open']]['date'].count()  # 计算收盘价高于开盘价的天数
sum_day = data['date'].count()  # 计算总交易日
rate = heigher_day/sum_day # 计算比率
rate  # 比率
0.4959016393442623
open_ = data['open'][1:]*1000 # 开盘价(从第一天开始到最后一天,但不包含第一天)
close_ = data['close'][:-1]*1000 # 收盘价(从第一天到最后一天,但不包含最后一天)
sum_profit = open_.sum() - close_.sum() # 计算最后总收益
sum_profit # 最后总收益
-2010.0

7.按周统计出每周的累计涨跌幅,并绘制出条形图;

data['date'] = pd.to_datetime(data['date']) # 将date转化为日期类型
plt.figure(figsize=(18,10)) # 设置画布大小
data.resample('W',on='date')['p_change'].sum().plot(kind='barh',title='每周的累计涨跌幅') # 按周统计出每周的累计涨跌幅,并绘制出条形图

8.计算出每月开盘价(open)和收盘价(close)的平均值,并绘制出柱状图

# 计算出每月开盘价(open)和收盘价(close)的平均值,并绘制出柱状图
data.resample('M',on='date')[['open','close']].mean().plot(kind='bar',title='每月开盘价和收盘价的平均值')


http://www.ppmy.cn/news/626474.html

相关文章

平安银行网银助手官方版

平安银行网银助手 v1.0.0.22 官方版 软件大小:4.91MB 软件语言:简体中文 软件类别:网络安全 软件授权:官方版 更新时间:2014-12-26 应用平台:/Win8/Win7/WinXP 平安银行网银助手是平安银行的网银安全管理工…

平安iq测试没通过的话影响入职吗_软件测试入坑建议

本科非计算机专业,在深圳做了四年软件测试工作,从之前的一脸懵的点点点,到现在会点自动化测试,说一点点非计算机专业人员从事软件测试的心得体会,仅供参考交流。 如果你是非计算机专业,毕业不久&#xff0c…

开源数据库在平安的应用实践

原文:http://www.enmotech.com/web/detail/1/720/1.html (复制链接,打开浏览器即可查看) 2019年5月9日,平安科技数据库产品及存储产品部总经理在第十届数据库技术大会DTCC上分享了《开源数据库在平安的应用实践》&am…

平安科技软件测试笔试题-精品

笔试题有三份,分别考python、SQL、java和计算机网络Linux命令等基础知识。 python部分 1、选择题 第1题,下列选项中,python不支持的数据类型有(B) python中没有字符类型,只有字符串类型string A、int …

平安银行数据安全分类分级平台建设与实践

随着信息技术的飞速发展,20 世纪 90 年代开始数据库技术日益成熟,各行各业凭借计算机技术的支撑,在日常经营运作的过程中产生了海量数据,数据已然成为新技术环境下的关键生产要素。特别是近年来全球经济数字化发展力度持续加强&am…

Java面试题及答案整理( 2023年 6 月最新版,持续更新)

秋招金九银十快到了,发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全~这套互联网 Java 工程师面试题包括了:MyBatis、ZK、Dubbo、EL、Redis、MySQL、并发编程、Java面试、Spring、微服务、Linux、Spring…

希望一切平安

周末跟着跑了一天,婆婆病倒了,昨天晚上回来后,让老公把脑部CT图给我看时,我才知道有多严重,脑部长了一个鸡蛋大小的瘤子,现在也不知道是良性还是恶性。 说真的,婆婆在家里什么活都没有的&#x…

平安科技表格识别——原理解读

一. 前景介绍 代码:https://github.com/JiaquanYe/TableMASTER-mmocr 论文:https://arxiv.org/pdf/2105.01848.pdf 论文解读:https://blog.csdn.net/devcloud/article/details/120987923 平安在ICDAR 2021表格识别比赛中获得亚军&#xff0c…