道指30只成分股的股价及历史股价抓取分析

1.获取数据:

想要获得道指30只成分股的最新股价

import requests
import re
import pandas as pddef retrieve_dji_list():try:r = requests.get('https://money.cnn.com/data/dow30/')except ConnectionError as err:print(err)search_pattern = re.compile('class="wsod_symbol">(.*?)<\/a>.*?<span.*?">(.*?)<\/span>.*?\n.*?class="wsod_stream">(.*?)<\/span>')dji_list_in_text = re.findall(search_pattern, r.text)dji_list = []for item in dji_list_in_text:dji_list.append([item[0], item[1], float(item[2])])return dji_listdji_list = retrieve_dji_list()
djidf = pd.DataFrame(dji_list)
print(djidf)

整理数据, 改变列名, index等

cols=['code','name','lasttrade']
djidf.columns=cols # 改变列名
djidf.index=range(1,len(djidf)+1)

最后结果为:
在这里插入图片描述

数据的选择

djidf.code   # 获取code列+index
djidf['code']  # 获取code列 , 两者同功能
djidf.loc[1:5,]  # 前5行
djidf.loc[:,['code','lasttrade']] #所有行
djidf.loc[1:5,['code','lasttrade']] #1-5行, loc表示标签index
djidf.loc[1,['code','lasttrade']] #1行
djidf.at[1,'lasttrade']  # 只有一个值的时候可以用at
djidf.iloc[2:4,[0,2]]  # 表示物理文职, 并且4取不到, 就只有第三行第四行
djidf.iat[1,2]  # 单个值

简单的数据筛选: 平均股价, 股价大于180的公司名

djidf.lasttrade.mean()  # 121.132
djidf[djidf.lasttrade>=180].name

找到股价前三名的公司 , 降序排列

tempdf=djidf.sort_values(by='lasttrade',ascending=False)
tempdf[:3].name

如何根据index排序呢? 专门有函数sort_index()

df=pd.DataFrame(np.random.randn(3,3),index=['c','b','a'],columns=list('xyz'))
df.sort_index()  # 根据index 进行排序

*获取AXP公司过去一年的股价数据获取

import requests
import re
import json
import pandas as pd
from datetime import  date
def retrieve_quotes_historical(stock_code):quotes = []url = 'https://finance.yahoo.com/quote/%s/history?p=%s' % (stock_code, stock_code)try:r = requests.get(url)except ConnectionError as err:print(err)m = re.findall('"HistoricalPriceStore":{"prices":(.*?),"isPending"', r.text)if m:quotes = json.loads(m[0])       # m = ['[{...},{...},...]']quotes = quotes[::-1]         # 原先数据为date最新的在最前面return  [item for item in quotes if not 'type' in item]
quotes = retrieve_quotes_historical('AXP')
list1=[]
for i in range(len(quotes)):x=date.fromtimestamp(quotes[i]['date'])y=date.strftime(x,'%Y-%m-%d')list1.append(y)
quotesdf_ori=pd.DataFrame(quotes,index=list1)
quotesdf_m = quotesdf_ori.drop(['adjclose'], axis = 1)  #删除adjclose列
quotesdf=quotesdf_m.drop(['date'],axis=1)
print(quotesdf)

上述需要对时间进行处理, 将时间转为’%Y-%m-%d’的格式, 并且将这个时间作为一个list 成为quotesdf的index.
在这里插入图片描述

数据的筛选

quotesdf[(quotesdf.index>='2017-03-01') & (quotesdf.index<='2017-03-31')]
quotesdf[(quotesdf.index>='2017-11-30') & (quotesdf.index<='2018-03-31')&
(quotesdf.close>=90)]

简单计算

(1) 统计AXP股价涨跌的天数 (close>open)

len(quotesdf.close>quotesdf.open) 

(2) 相邻两天的涨跌

import numpy as np
status=np.sign(np.diff(quotesdf.close))
status  # 250 的长度, 比quotesdf 少1
status[np.where(status==1)].size  # np.where(status==1)是由下标构成的array
# 

上述统计还可以直接用describe函数, 得到基本统计信息

import pandas as pd
import numpy as np
index_df = pd.DataFrame(np.random.rand(3,3), index=['a','b','c'], columns=['index_1','index_2','index_3'])
index_df.describe() # 超级强大

(3) 统计2018一月的交易日天数

t=quotesdf[(quotesdf.index>='2018-01-01') & (quotesdf.index<'2018-02-01')]
len(t)  #21

进一步, 如何统计近一年每个月的交易日天数?

统计每个月的出现天数就行了, 如何提取月份信息? 要把时间的字符串转化为 时间格式,

import time
list2=[]
for i in range(len(quotesdf)):temp=time.strptime(quotesdf.index[i],'%Y-%m-%d')list2.append(temp.tm_mon)  # 取月份
tempdf=quotesdf.copy()
tempdf['month']=list2  # 新增一列月份的数据
print(tempdf['month'].value_counts())  # 计算每个月的出现次数

注意:

strptime 将字符串格式化为time结构, time 中会包含年份, 月份等信息
strftime 将time 结构格式化一个字符串, 之前生成quotesdf中用到过

上述方法略微麻烦, 如何快速知道每个月的交易日天数? groupby

# 统计每一月的股票开盘天数
x=tempdf.groupby('month').count()
# 统计近一年每个月的成交量
tempdf.groupby('month').sum().volume
# 先每个月进行求和, 但是这些对其他列也进行了求和, 属于无效计算, 如何避免?
tempdf.groupby('month').volume.sum()  # 交换顺序即可

引申: 一般groupby 与apply 在一起用. 具体不展开了

def f(df):return df.age.count()
data_df.groupby('taste of mooncake').apply(f)   

(二) 合并DataFrame: append, concat, join

# append
p=quotesdf[:2]
q=quotesdf['2018-01-01':'2018-01-05']
p.append(q)# concat
pieces=[tempdf[:5],tempdf[len(tempdf)-5:]]
pd.concat(pieces)

两个结构不同的DataFrame 如何合并?

piece1=quotesdf[0:3]
piece2=tempdf[:3]
pd.concat([piece1,piece2],ignore_index=True)

piece2有month 但是piece1中没有这个字段
在这里插入图片描述

join函数中的各种参数, 可以用来实现SQL的各种合并功能.

#join 两个dataframe要有共同的字段(列名)
#djidf: code/name
#AKdf:  volume/code/month
# 合并之后的字段: code/name/volume/month
pd.merge(djidf.drop(['lasttrade'],axis=1),AKdf, on='code')

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

短信验证码接口的实现

代码&#xff1a; sendsms.java //接口类型&#xff1a;互亿无线触发短信接口&#xff0c;支持发送验证码短信、订单通知短信等。 // 账户注册&#xff1a;请通过该地址开通账户http://sms.ihuyi.com/register.html // 注意事项&#xff1a; //&#xff08;1&#xff09;调试…

交友项目【手机号验证码发送】功能实现

目录 1&#xff1a;注册登录需求分析 1.1&#xff1a;业务说明 1.2&#xff1a;需求分析 1.3&#xff1a;数据库表 1.4&#xff1a;实体类 2&#xff1a;发送短信验证码 2.1&#xff1a;登录验证码 2.2&#xff1a;接口说明 2.3&#xff1a;流程分析 2.4&#xff1a;…

免费的短信验证码接口

免费的短信验证码接口 改了唯ID的东西&#xff0c;大家可以用来玩玩&#xff0c;该服务明年6月到期&#xff0c;也希望大家能文明使用&#xff01; 不说废话了&#xff0c;直接上接口。 1、发送短信验证码接口 POST http://sms.usts.top/sms/sendCode?phone手机号2、…

短信验证码平台有哪些比较好用?

现如今&#xff0c;要想分辨短信验证码平台哪些比较好用&#xff0c;需要从速度、到达率、稳定性等几个方面来决定。短信验证码平台是很讲究时效性&#xff0c;所以速度快、到达率高是很关键的。另外&#xff0c;在选择短信验证码平台的时候&#xff0c;还要注意短信发送、接收…

短信验证码的实现

需求 发送验证码短信然后接收验证码再完成注册 具体操作 1>点击"获取验证码"的按钮,会发送sendVerifyCode的异步请求并带上参数phone(number) 查看前端代码html 查看对应的js代码 2>后端接口的实现 接口接收请求,获取到手机号,生成验证码code,拼接出短信,并…

目前可以用的短信验证码平台哪个比较好?

目前短信验证码大家应该都很熟悉了&#xff0c;尤其当你在一些购物网站等注册会员或者修改信息时都需要验证码。而短信验证码是商家为了降低重复注册或者非法注册&#xff0c;就需要短信验证码来帮忙用户的真实性。那么&#xff0c;目前可以用的短信验证码平台哪个比较好呢&…

短信验证码登录的实现

原理说明开发环境具体实现过程 原理说明 在网站登录时经常会遇到短信验证码登录的情况&#xff0c;其原理如下&#xff1a;首先我们需要一个短信发送接口&#xff0c;前端发送手机号码到后端&#xff0c;后端随机生成一个验证码并存入redis,并且设置该key的过期时间。(这里可以…

低代码真的是“行业毒瘤”?

低代码/零代码到底是“行业毒瘤”还是“大势所趋”&#xff1f;碰瓷“码农”万年户&#xff0c;低代码火了这些年&#xff0c;你还觉得是毒瘤吗&#xff1f; 低代码/零代码作为比较有争议的话题&#xff0c;常年被拿来碰瓷码农&#xff0c;也是很多行业大佬关注的对象。 阿里云…

chatgpt赋能python:Python如何下载人人文库

Python如何下载人人文库 人人文库是一个知识分享社区&#xff0c;用户可以在平台上上传、下载和分享文档。 Python是一种强大的编程语言&#xff0c;具有强大的网络和数据处理库。今天&#xff0c;我们将介绍如何使用Python来下载人人文库中的文档。 首先&#xff0c;我们需…

秘密共享差分隐私原理解析

1. 隐私计算全貌 &#xfffc;&#xfffc; 可以看到&#xff0c;隐私计算技术从1979年就开始了&#xff0c;历经四代从安全多方计算(MPC)、到差分隐私(DP)、到集中加密技术(TEE)&#xff0c;再到联邦学习(FL)。 2. 秘密共享 secret Sharing 就是“秘密分享”或者“秘密共享”…

保护个人隐私和数据安全的方法与策略

引言 随着信息技术的普及和发展&#xff0c;我们享受到了便捷的互联网服务&#xff0c;但与此同时&#xff0c;个人隐私和数据安全问题也日益受到威胁。在这个所谓的"裸奔"时代&#xff0c;网络攻击、数据泄露和隐私侵犯已经成为常态。然而&#xff0c;我们并不无助…

商业秘密安全保护

新项目涉及商密&#xff08;商业秘密的密级&#xff1a;非商密、普通商密、核心商密&#xff09;&#xff0c;以下是对商密安全保护规则的调研。 《中央企业商业秘密安全保护技术指引》&#xff08;保密[2015]3号&#xff09;《中央企业商业秘密安全技术保护实施指南》&#x…

华为ensp练习题

首先子网划分如下图&#xff1a; 然后配路由ip&#xff0c;创建路由接口对路由器R1-R4每个都要配两个环回地址&#xff0c;R5配一个环回地址&#xff1a; interface LoopBack ? 然后配静态路由&#xff1a;也是ip route-static 然后配缺省路由&#xff1a;也是ip route-stat…

python绘图-matplotlib应用笔记

目录 figure/axis/axes/plt分别表示什么&#xff1f;pltFigure:可以解释为画布。Axes 是图像中具有数据空间的区域Axis 坐标轴总结 图像元素说明中文解决问题绘图实例 图像坐标轴调整 参考文章 figure/axis/axes/plt分别表示什么&#xff1f; matplot绘图的基础就是由上述图片中…

Python绘图(模板)

目录 2D绘图 折线图 条形图 直方图 散点图 饼图 堆积条形图 ​编辑 对称条形图 3D绘图 3D散点图 3D条形图 附录&#xff1a; 颜色表color 图标marker" " 固定代码模版 2D绘图 折线图 import matplotlib.pyplot as plt #上一行代码也可替换为 i…

【Android】自定义View、画家(画布)Canvas与画笔Paint的应用——画图、涂鸦板app的实现

利用一个简单的画图app来说明安卓的图形处理类与自定义View的应用。 如下图&#xff0c;有一个供用户自己任意画图、涂鸦的app&#xff0c; 这里不做那么花俏了&#xff0c;仅提供黑白两色&#xff0c;但可以改变笔尖的粗细。 实质上这里的橡皮擦就是白色的画笔&#xff0c;根…

Python画图matplotlib库的使用scatter(),plot()方法教学实例

Python画图主要用到matplotlib这个库。scatter和 plot 函数最常用 这个函数几乎可以调节图的一切属性&#xff0c;包括但不限于&#xff1a;坐标范围&#xff0c;axes标签字号大小&#xff0c;xtick,ytick标签字号&#xff0c;图线宽&#xff0c;legend字号等。 具体参数参看官…

绘图神器draw.io(写文必备)

绘图神器draw.io&#xff08;写文必备&#xff09; 前言 大家早上好&#xff0c;我是毛小悠&#xff0c;一个前端开发工程师。 最近发现一个绘图神器&#xff0c;没错&#xff0c;就是标题中的draw.io。免费、开源&#xff0c;功能强大&#xff0c;真的非常适合程序员。 我…

基于Attention的机器翻译模型,论文笔记

论文题目&#xff1a;Neural Machine Translation by Jointly Learning to Align and Translate 论文地址&#xff1a;http://pdfs.semanticscholar.org/071b/16f25117fb6133480c6259227d54fc2a5ea0.pdf GIF来源&#xff1a;https://jalammar.github.io/visualizing-neural-m…

Transformer(四)--实现验证:transformer 机器翻译实践

转载请注明出处&#xff1a;https://blog.csdn.net/nocml/article/details/125711025 本系列传送门&#xff1a; Transformer(一)–论文翻译&#xff1a;Attention Is All You Need 中文版 Transformer(二)–论文理解&#xff1a;transformer 结构详解 Transformer(三)–论文实…