数据挖掘实验一

一、实验环境及背景

使用软件:
  • Anaconda3 Jupyter Notebook
实验内容:
  1. 1.使用Tushare或者其他手段获取任意两支股票近三个月的交易数据。做出收盘价的变动图像。
  2. 2.使用Pandas_datareader获取世界银行数据库中美国(USA)、瑞典(SWE)、瑞士(CHE)三个国家近20年的NY.GDP.PCAP.KD数据,作图分析。
  3. 3.对于泰坦尼克的数据集,试分析幸存与否与独立登船的相关性(alone数据列)

二、实验内容

  • 作业题1

1.使用Tushare或者其他手段获取任意两支股票近三个月的交易数据。做出收盘价的变动图像。

(1)Tushare安装与接口调用方法

1.模块安装

使用pip install tushare指令在Anaconda Prompt终端中安装即可。

pip install tushare

2.模块调用

打开jupyter,导入tushare包:

import tushare as ts

3.查看安装版本

print(f"tushare 版本: {ts.__version__}")

(2)实验数据的获取

1.获取tushare的token

注册登录tushare网站后,点击个人主页,点击“接口token”选项卡,点击复制token

tushare官网:Tushare数据icon-default.png?t=N7T8https://tushare.pro/

 这里选择了000001.SZ和000002.SZ两支股票的数据

 【作业1代码】

import tushare as ts
print(f"tushare 版本: {ts.__version__}")
import tushare as ts
import pandas as pd
import numpy as np 
import datetime as dt


#下面的*号内容处复制粘贴自己的token码即可
token = '*****************************************' 
ts.set_token(token)
pro = ts.pro_api()

# 对000002.SZ拉取数据
df = pro.daily(**{
    "ts_code": "000002.SZ",
    "trade_date": "",
    "start_date": 20240101,
    "end_date": 20240331,
    "offset": "",
    "limit": ""
}, fields=[
    "ts_code",
    "trade_date",
    "open",
    "close"
])
print(df)

#将日期转化为时间序列
df['trade_date'] = pd.to_datetime(df['trade_date'])
#将日期升序排列
df = df.set_index('trade_date').sort_index(ascending=True)
df

#y轴为收盘价
y1 = df['close']
x1 = range(len(y1))
#x1 = df['trade_date']

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号

#绘制收盘价走势图
plt.figure(1)
plt.plot(x1,y1)
plt.xlabel("日期")
plt.ylabel("收盘价")
plt.title("2024年1月-3月000002.SZ股票收盘价走势图")
plt.show()

【000002.SZ走势图效果】

【绘制000001.SZ收盘价走势图】

# 拉取数据
df1 = pro.daily(**{
    "ts_code": "000001.SZ",
    "trade_date": "",
    "start_date": 20240101,
    "end_date": 20240331,
    "offset": "",
    "limit": ""
}, fields=[
    "ts_code",
    "trade_date",
    "open",
    "close"
])
print(df1)

#将日期转化为时间序列
df1['trade_date'] = pd.to_datetime(df1['trade_date'])
#将日期升序排列
df1 = df1.set_index('trade_date').sort_index(ascending=True)
df1

#y轴为收盘价
y2 = df1['close']
x2 = range(len(y2))
#x1 = df['trade_date']

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号

#绘制收盘价走势图
plt.figure(1)
plt.plot(x2,y2)
plt.xlabel("日期")
plt.ylabel("收盘价")
plt.title("2024年1月-3月000001.SZ股票收盘价走势图")
plt.show()

【000001.SZ收盘价走势图效果】

  •  作业题2

2.使用Pandas_datareader获取世界银行数据库中美国(USA)、瑞典(SWE)、瑞士(CHE)三个国家近20年的NY.GDP.PCAP.KD数据,作图分析。

(1)Pandas_datareader安装及调用

1.模块安装

使用pip install pandas-datareader指令在Anaconda Prompt终端中安装即可。

2.打开jupyter,导入pandas-datareader包:

# 导入wb用于查询世界银行数据
# http://ju.outofmemory.cn/entry/308589
# https://pandas-datareader.readthedocs.io/en/latest/readers/world-bank.html?
# highlight=pandas_datareader.wb
# 导入包
import pandas_datareader.wb as worldbank

(2)作业2代码
# 导入wb用于查询世界银行数据
# http://ju.outofmemory.cn/entry/308589
# https://pandas-datareader.readthedocs.io/en/latest/readers/world-bank.html?
# highlight=pandas_datareader.wb
# 导入包
import pandas_datareader.wb as worldbank
import matplotlib.pyplot as plt 
import pandas as pd
import seaborn as sns
 
# 图表内嵌中文字体问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
sns.set_style({'font.sans-serif':['simhei','Arial']})
 
# 起止年,近20年(2021为NAN,故采用2000-2020年数据)
start_year = 2000
end_year = 2020
 
# 下载数据三国美国(USA)、瑞典(SWE)、瑞士(CHE)的"NY.GDP.PCAP.KD"数据
date = worldbank.download(indicator = "NY.GDP.PCAP.KD",country = ["USA","SWE","CHE"],start = start_year,end = end_year)
print('"NY.GDP.PCAP.KD数据:',date)
 
# 合并数据
dates = date.unstack(level=0)
dates

 

# 画图
fig,ax = plt.subplots(1,1,figsize=(12,7))
plt.plot(dates.iloc[:,0],'g-',label="SWE") #Sweden 瑞典
plt.plot(dates.iloc[:,1],'b-*',label="CHE") #Switzerland 瑞士
plt.plot(dates.iloc[:,2],'r--',label="USA") #United States 美国
 
plt.title('美国、瑞典、瑞士三国人均GDP对比',fontsize=20)
plt.legend()
plt.xlabel('年份')
plt.ylabel('GDP')
ax.set_xticklabels(dates.index,rotation=20,fontsize=14)
plt.savefig('美国、瑞典、瑞士三国GDP.png',dpi=300)
plt.show()

  •  作业题3

3.对于泰坦尼克的数据集,试分析幸存与否与独立登船的相关性(alone数据列)。

# 引入库
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd
 
# 图表内嵌中文字体问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
sns.set_style('whitegrid',{'font.sans-serif':['simhei', 'Arial']})
 
# 导入数据
titanic = pd.read_excel('titanic.xlsx')
 
# 统计幸存者的是否独立登船比例
survived = titanic.groupby(['alone','survived']).size().unstack()
survived['sum'] = survived[0]+survived[1]
survived['生还率'] = survived[1]/survived['sum']
print('幸存者按照是否独立登船统计的生还者、遇难者:')
print('0:遇难,1:生还')
print(survived)
print('幸存与否与独立登船的相关系数:')
print(titanic['survived'].corr(titanic['alone']))
mm = titanic['survived'].corr(titanic['alone'])
if mm > 0:
    print('幸存与否与独立登船呈正相关')
else:
    print('幸存与否与独立登船呈负相关')
print()
 

# 画相关系数矩阵
plt.figure(figsize=(10,8))
 
# sns.heatmap(survived,corr(),linewidths = 0.1,vmax=1.0,square=True,linecolor='white', annot=True,annot_kws={'size':20,'weight':'bold','color':'white'})
sns.heatmap(survived,linewidths = 0.1,vmax=1.0,square=True,linecolor='white', annot=True,annot_kws={'size':20,'weight':'bold','color':'green'})
plt.savefig('相关矩阵.png',dpi=300,bbox_inches='tight')
plt.show()

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows电脑中护眼(夜间)模式的开启异常

我的电脑是联想小新16pro,Windows11版本。之前一直可以正常使用夜间模式,但是经过一次电脑的版本更新之后,我重启电脑发现我的夜间模式不能使用了。明明显示开启状态,但是却不能使用,电脑还是无法显示夜间模式。 询问…

基于Spring Boot的考研资讯平台设计与实现

基于Spring Boot的考研资讯平台设计与实现 开发语言:Java框架:springbootJDK版本:JDK1.8数据库工具:Navicat11开发软件:eclipse/myeclipse/idea 系统部分展示 系统功能界面图,在系统首页可以查看首页、考…

【Qt QML】TabBar的用法

Qt Quick中的TabBar提供了一个基于选项卡的导航模型。TabBar由TabButton控件填充,并且可以与任何提供currentIndex属性的布局或容器控件一起使用,例如StackLayout或SwipeView。 import QtQuick import QtQuick.Controls import QtQuick.LayoutsWindow …

FPGA实现AXI4总线的读写_如何写axi4逻辑

FPGA实现AXI4总线的读写_如何写axi4逻辑 一、AXI4 接口描述 通道信号源信号描述全局信号aclk主机全局时钟aresetn主机全局复位,低有效写通道地址与控制信号通道M_AXI_WR_awid[3:0]主机写地址ID,用来标志一组写信号M_AXI_WR_awaddr[31:0]主机写地址&…

贪吃蛇身子改进加贪吃蛇向右移动

1. 蛇移动的思想: 其实就是删除头节点 ,增加尾节点;一句代码搞定 struct Snake *p; p head; head head -> next; free(p) 防止造成多的空间节点 2.增加尾节点代码思想: 2.1 .开辟new 节点的空间 struct Snake *new (stru…

每日OJ题_DFS回溯剪枝①_力扣46. 全排列(回溯算法简介)

目录 回溯算法简介 力扣46. 全排列 解析代码 回溯算法简介 回溯算法是一种经典的递归算法,通常⽤于解决组合问题、排列问题和搜索问题等。 回溯算法的基本思想:从一个初始状态开始,按照⼀定的规则向前搜索,当搜索到某个状态无…

Quarto Dashboards 教程 3:Dashboard Data Display

「写在前面」 学习一个软件最好的方法就是啃它的官方文档。本着自己学习、分享他人的态度,分享官方文档的中文教程。软件可能随时更新,建议配合官方文档一起阅读。推荐先按顺序阅读往期内容: 1.quarto 教程 1:Hello, Quarto 2.qu…

耐酸碱腐蚀PFA冷凝回流装置进口透明聚四氟材质PFA梨形漏斗特氟龙圆底烧瓶

PFA分液漏斗:也叫特氟龙分液漏斗、特氟龙梨型分液漏斗。 规格参考:125ml、250ml、500ml、1000ml 其主要特性有: 1.内壁对溶剂无粘贴性和吸附,可完全排空,分界面清晰可见; 2.密封性好,可防止…

excel文件导入dbeaver中文乱码

1.将excel文件进行另存为,保存类型选择【CSV】 2.选择【工具】–>【web选项】–> 【编码】–> 【简体中文(GB18030)】 3.在DBeaver进行数据导入 直接导入应该就可以,如果不行的话按下面处理。 选择【导入数据——选择cs…

云原生Kubernetes: K8S 1.29版本 部署Nexus

目录 一、实验 1.环境 2.搭建NFS 3. K8S 1.29版本 部署Nexus 二、问题 1.volumeMode有哪几种模式 一、实验 1.环境 (1)主机 表1 主机 主机架构版本IP备注masterK8S master节点1.29.0192.168.204.8 node1K8S node节点1.29.0192.168.204.9node2K…

Java毕业设计 基于SpringBoot vue养老院管理系统 微信小程序

Java毕业设计 基于SpringBoot vue养老院管理系统 微信小程序 SpringBoot 养老院管理系统 功能介绍 小程序 护工登录注册 忘记密码 护工信息维护 首页 图片轮播 床位调动申请 床位展示 床位详情 床位分配 房间展示 公告信息 公告详情 健康信息 请假申请 离职申请 后台管理 登…

09.JAVAEE之网络初识

1.网络 单机时代 >局域网时代 >广域网时代 >移动互联网时代 1.1 局域网LAN 局域网,即 Local Area Network,简称LAN。 Local 即标识了局域网是本地,局部组建的一种私有网络。 局域网内的主机之间能方便的进行网络通信&#xff0…

有哪些人工智能/数据分析领域可以考取的证书?

一、TensorFlow谷歌开发者认证 TensorFlow面向学生、开发者、数据科学家等人群,帮助他们展示自己在用 TensorFlow 构建、训练模型的过程中所学到的实用机器学习技能。 添加图片注释,不超过 140 字(可选) TensorFlow 的产品总监 …

抖音智能运营系统源码

这是一个一站式服务的抖音智能运营系统,旨在提升内容创作者和营销人员的工作效率。它是一个综合性的在线服务平台,专为抖音内容创作者和营销人员设计。系统基于高性能、可扩展性强的ThinkPHP框架,整合了视频处理、数据分析、文案生成与配音等…

Redis网络部分相关的结构体2 和 绑定回调函数细节

目录 1. struct connection ConnectionType属性 创建connection 2. struct client 3. 绑定客户端回调函数的流程 3.1. 读事件回调函数的设置 3.2. 写事件回调函数的设置 3.3. connSocketEventHandler函数 3.4. Redis5版本的设置回调函数 3.5. 个人的一些想法&#xf…

2024贵州康博会|特色健康食品展|医药展|医疗器械展会

2024 中国(贵州)大健康产业博览会2024 特色食品(农产品、水、饮料)暨第22届医药及医疗器械、设备展览会邀请函 时间:2024 年 9 月 26 日 -28 日(共三天) 地点:贵阳国际会议展览中心 (观山湖区) 主办单位: 贵州省天然饮用水行业协会 贵州省大健康产业…

diskMirror docker 使用容器部署 diskMirror 服务器!!!

Welcome to diskMirror-docker 获取项目 这个项目是 diskMirror-spring-boot 镜像版本的项目,您可以使用下面的命令将此项目编译为一个镜像! # 进入到您下载的源码包目录 cd diskMirror-docker# 点击脚本来进行版本的设置以及对应版本的下载 设置 和 编…

FastGPT编译前端界面,并将前端界面映射到Docker容器中

建议在linux系统下编译 1、克隆代码 git clone https://github.com/labring/FastGPT 2、进入FastGPT目录,执行 npm install 3、进入projects/app目录,执行 npm run dev 此时会自动下载依赖包,这里如果执行npm install的话,…

IDEA2024最新版的激活与安装-保姆级教学

目录 一、idea 介绍 二、官网下载 2.1 进入官网,下载zip绿色版即可 2.2 输入网址下载jetbra.zip 2.3 执行idea/soft/scripts/install-allusers.vbs文件(根据自己安装路径改变) 2.4 启动idea/soft/bin/idea64.exe 将事先复制好的码复制进去…

MATLAB线性函数拟合并预测

线性函数拟合,由线性函数很好描述的一个数集,也就是说如果我们所考虑的数据是以y(x)的形式给出,并且其中f(x)满足: 要求得 m 和b的值,我们可以使用一个称为 polyii(x,y,n)的 MATLAB 函数,其中n是我们要 MATLAB 求出的多项式的次数…