Python对阿里巴巴、谷歌、腾讯等六家公司股票数据进行分析与可视化实战(附源码 超详细)

简介: Python对阿里巴巴、谷歌、腾讯等六家公司股票数据进行分析与可视化实战(附源码 超详细)

需要源码请点赞关注收藏后评论区留言私信~~~

下面针对阿里巴巴、谷歌、亚马逊、Facebook、苹果和腾讯六家公司股票数据进行了分析与可视化描述,数据分析前需要安装互联数据获取包pandas-datareader

先使用conda安装:

1)python3环境

2)安装互联数据获取包pandas-datareader

实现步骤

1:导入模块

2:获取数据

首先定义要获取股票数据的来源和时间区间

然后分别获取阿里巴巴、谷歌、亚马逊、Facebook、苹果和腾讯的股票数据

数据说明

列名    High   Low    Open   Close  Volume

含义   最高价 最低价  开盘价  收盘价 成交量

接下来从上到下分别是阿里  谷歌 亚马逊 facebook 苹果 腾讯的股票信息

接下来我们以阿里巴巴数据为例进行详细分析 其他公司的省略

首先查看数据集情况

查看数据集统计信息

增加一列DayHL 表示日最高价和最低价之间的差值

数据可视化

下面绘制阿里巴巴的股票走势图

从图中可以看出 阿里巴巴的股票价格2018 6-7月涨势良好且比较稳定 从2018年9月开始总体趋势处于下滑状态

下面绘制阿里巴巴股票成交量和股价之间的散点图

接着计算相关系数矩阵

导入另外五家公司的股价数据 并且对六家公司的股价进行走势比较 并画出曲线图

因为谷歌和亚马逊的股价比较高,造成我们看不出其他4家公司的股票走势。 所以根据股价我们可以将这6家公司分成2组,一组是股价较高的谷歌和亚马逊。另外一组是股价较低的4家公司

接下来比较六家公司股票的平均值

可见亚马逊和谷歌非常的高,腾讯比较低

代码

部分代码如下 需要全部代码请点赞关注收藏后评论区留言私信~~~

#导入包
#数据分析包
import pndas as pd
from panda_datareader import data
import matlotlib
import matplotlib.pyplot as plt
font = {'mily' : 'SimHei',
        'weight' : 'bold',
        'size'   : '12'}
plt.rc('font', **font)               # 步骤一(设置字体的更多属性)
plt.rc('xes', unicode_minus=False)  # 步骤二(解决坐标轴负数的负号显示问题)
# 存在的问题:由于是从国外获取股票数据,会由于网络不稳定,获取数据失败,多运行几次这个cell就好了
'''
获取国内股票数据的方式是:“股票代码”+“对应股市”(港股为.hk,A股为.ss)
例如腾讯是港股是:0700.hk
'''
#字典:6家公司的股票
gafataDict={'谷歌':'GOOG','亚马逊':'AMZN','Facebook':'FB',
      = '2019-05-01'
'''
get_data_yahoo表示从雅虎数据源获取股票数据
雅虎股票数据源文档:http://pandas-datareader.readthedocs.io/en/latest/remote_data.html#yahoo-finance
'''
# # 获取哪段时间范围的股票数据
# start_date = '2018-01-01'
# end_date = '2019-05-01'
#获取阿里巴巴股票数据
ALbbDf = data.get_data_yahoo(gafataDict['阿里巴巴'],start_date, end_date)
#查看前5行数
ALbbDf.tail()
#获取谷歌股票数据
GoogleDf=data.get_data_yahoo(gafataDict['谷歌'],start_date, end_date)
GoogleDf.tail()
#获取亚马逊股票数据
AmazDf=data.get_data_yahoo(gafataDict['亚马逊'],start_date, end_date)
AmazDf.tail()
#获取Facebook股票数据
FBDf=data.get_data_yahoo(gafataDict['Facebook'],start_date, end_date)
FBDf.tail()
#导入可视化包
import matplotlib.pyplot as plt
font = {'family' : 'SimHei',
        'weight' : 'bold',
        'size'   : '15'}
plt.rc('font', **font)               # 步骤一(设置字体的更多属性)
plt.rc('axes', unicode_minus=False)  # 步骤二(解决坐标轴负数的负号显示问题)
'''
横轴x是股票时间(babaDf.index是Pandas二维数据Dataframe的行索引,这里是时间序列)
纵轴y是收盘价Close这一列数据
plot默认是线条图
'''
ALbbDf.plot(y = "Close",color = "blue")
#x坐标轴文本
plt.xlabel('时间')
#y坐标轴文本
plt.ylabel('股价(美元)')
plt.xticks(rotation = 60)
#图片标题
plt.title('2018年初至今阿里巴巴股价走势')
#显示图例
plt.grid()
#显示图形
plt.show()
'''
我们给plot传入的横轴x坐标轴数据成交量这一列的数据,
纵轴y坐标轴数据是收盘价这一列的数据,
同时增加了一个参数叫kind这个值表示绘制图形的类型,这里的值等于scatter表示绘制散点图。
kind取值(图形类型)参考官方文档:http://pandas.pydata.org/pandas-docs/stable/visualization.html
'''
matplotlib.rcParams['font.size'] = 12
ALbbDf.plot(x='Volume',y='Close',kind='scatter')
#x坐标轴文本
plt.xlabel('成交量')
#y坐标轴文本
plt.ylabel('股价(美元)')
#图片标题
plt.title('成交量和股价')
#显示图形
plt.show()
#绘制谷歌的画纸1
plt.figure(figsize=(3,10))
ax1=GoogleDf.plot(y='Close')
#通过指定画纸ax,在同一张画纸上绘图
#亚马逊
AmazDf.plot(ax=ax1,y='Close')
#Facebook
FBDf.plot(ax=ax1,y='Close')
#苹果
AppleDf.plot(ax=ax1,y='Close')
#阿里巴巴
ALbbDf.plot(ax=ax1,y='Close')
#腾讯
TCDf.plot(ax=ax1,y='Close')
#x坐标轴文本
plt.xlabel('时间')
#y坐标轴文本
plt.ylabel('股价(美元)')
#图片标题
plt.title('2018年至今6家公司股价走势比较')
plt.legend()
plt.show()
'''
使用label自定义图例
'''
#绘制谷歌的画纸1
ax1=GoogleDf.plot(y='Close',label='谷歌')
#通过指定画纸ax,在同一张画纸上绘图
#亚马逊
AmazDf.plot(ax=ax1,y='Close',label='亚马逊')
#Facebook
FBDf.plot(ax=ax1,y='Close',label='Facebook')
#苹果
AppleDf.plot(ax=ax1,y='Close',label='苹果')
#阿里巴巴
ALbbDf.plot(ax=ax1,y='Close',label='阿里巴巴')
#腾讯
TCDf.plot(ax=ax1,y='Close',label='腾讯')
#x坐标轴文本
plt.xlabel('时间')
#y坐标轴文本
plt.ylabel('股价(美元)')
#图片标题
plt.title('2018年至今6家公司股价走势比较')
#显示网格
plt.show()'''
第1组:谷歌,亚马逊
'''
#绘制谷歌的画纸2
ax2=GoogleDf.plot(y='Close',label='谷歌')
#通过指定画纸ax,在同一张画纸上绘图
#亚马逊
amazDf.plot(ax=ax2,y='Close',label='亚马逊')
#x坐标轴文本
plt.xlabel('时间')
#y坐标轴文本
plt.ylabel('股价(美元)')
#图片标题
plt.title('2018年谷歌和亚马逊股价走势比较')
#显示网格
plt.grid(True)
plt.show()

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
1月前
|
测试技术 数据库 Python
Python装饰器实战:打造高效性能计时工具
在数据分析中,处理大规模数据时,分析代码性能至关重要。本文介绍如何使用Python装饰器实现性能计时工具,在不改变现有代码的基础上,方便快速地测试函数执行时间。该方法具有侵入性小、复用性强、灵活度高等优点,有助于快速发现性能瓶颈并优化代码。通过设置循环次数参数,可以更准确地评估函数的平均执行时间,提升开发效率。
106 61
Python装饰器实战:打造高效性能计时工具
|
4天前
|
存储 数据采集 数据库
Python爬虫实战:股票分时数据抓取与存储
Python爬虫实战:股票分时数据抓取与存储
|
28天前
|
运维 Shell 数据库
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
56 20
|
2月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
2月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
2月前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
126 80
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
3月前
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
172 59
|
2月前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
52 14
|
2月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
116 2

热门文章

最新文章

推荐镜像

更多