导航:首页 > 数据行情 > 股票数据pandas

股票数据pandas

发布时间:2022-08-03 05:47:52

Ⅰ 如何选取过去每个月股票的市值 python

类似,可以修改一下
股票涨跌幅数据是量化投资学习的基本数据资料之一,下面以python代码编程为工具,获得所需要的历史数据。主要步骤有:
(1) #按照市值从小到大的顺序活得N支股票的代码;
(2) #分别对这一百只股票进行100支股票操作;
(3) #获取从2016.05.01到2016.11.17的涨跌幅数据;
(4) #选取记录大于40个的数据,去除次新股;
(5) #将文件名名为“股票代码.csv”。
具体代码如下:
# -*- coding: utf-8 -*-
"""
Created on Thu Nov 17 23:04:33 2016
获取股票的历史涨跌幅,并分别存为csv格式
@author: yehxqq151376026
"""

import numpy as np
import pandas as pd

#按照市值从小到大的顺序活得100支股票的代码
df = get_fundamentals(
query(fundamentals.eod_derivative_indicator.market_cap)
.order_by(fundamentals.eod_derivative_indicator.market_cap.asc())
.limit(100),'2016-11-17', '1y'
)

#分别对这一百只股票进行100支股票操作
#获取从2016.05.01到2016.11.17的涨跌幅数据
#选取记录大于40个的数据,去除次新股
#将文件名名为“股票代码.csv”
for stock in range(100):
priceChangeRate = get_price_change_rate(df['market_cap'].columns[stock], '20160501', '20161117')
if priceChangeRate is None:
openDays = 0
else:
openDays = len(priceChangeRate)
if openDays > 40:
tempPrice = priceChangeRate[39:(openDays - 1)]
for rate in range(len(tempPrice)):
tempPrice[rate] = "%.3f" %tempPrice[rate]
fileName = ''
fileName = fileName.join(df['market_cap'].columns[i].split('.')) + '.csv'
fileName
tempPrice.to_csv(fileName)

Ⅱ 怎么用python panda 算股票市场收益率

1.收集数据,开盘价,收盘价,交易量
2.用pandas处理数据,处理缺失值
3.用股票收益率的公式带入
说白了,pandas只是个好用的工具,方法都是一样的,只是效率问题
有多少人工,就有多少智能

Ⅲ python用什么方法或者库可以拿到全部股票代码

首先你需要知道哪个网站上有所有股票代码,然后分析这个网站股票代码的存放方式,再利用python写一个爬虫去爬取所有的股票代码

Ⅳ 如何编程从免费股票软件中提取实时数据

自己写程序的话,一种方法是从已提供的信息源,例如webservice获取数据。还有种办法就是去连接提供即时信息的网页硬解析。

代码举例如下:

Created on Thu Jul 23 09:17:27 2015
@author: jet
"""
DAY_PRICE_COLS = ['date', 'open', 'high', 'close', 'low', 'volume',
'chg', '%chg', 'ma5', 'ma10', 'ma20',
'vma5', 'vma10', 'vma20', 'turnover']
DAY_PRICE_URL = '%sapi.finance.%s/%s/?code=%s&type=last'
INDEX_KEY = ['SH', 'SZ', 'HS300', 'SZ50', 'GEB', 'SMEB']
INDEX_LIST = {'SH': 'sh000001', 'SZ': 'sz399001', 'HS300': 'sz399300',
'SZ50': 'sh000016', 'GEB': 'sz399006', 'SMEB': 'sz399005'}
INDEX_DAY_PRICE_COLS= ['date', 'open', 'high', 'close', 'low', 'volume',
'chg', '%chg', 'ma5', 'ma10', 'ma20',
'vma5', 'vma10', 'vma20']
K_TYPE_KEY = ['D', 'W', 'M']
K_TYPE_MIN_KEY = ['5', '15', '30', '60']
K_TYPE = {'D': 'akdaily', 'W': 'akweekly', 'M': 'akmonthly'}
MIN_PRICE_URL = '%sapi.finance.%s/akmin?scode=%s&type=%s'
PAGE_TYPE = {'http': 'http://', 'ftp': 'ftp://'}
PAGE_DOMAIN = {'sina': 'sina.com.cn', 'ifeng': 'ifeng.com'}
URL_ERROR_MSG = '获取失败,请检查网络状态,或者API端口URL已经不匹配!'

get_hist_data.py
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 23 09:15:40 2015
@author: jet
"""
import const as ct
import pandas as pd
import json
from urllib2 import urlopen,Request

def get_hist_data(code = None, start = None, end = None, ktype = 'D'):
"""
功能:
获取个股历史交易数据
--------
输入:
--------
code:string
股票代码 比如:601989
start:string
开始日期 格式:YYYY-MM-DD 为空时取到API所提供的最早日期数据
end:string
结束日期 格式:YYYY-MM-DD 为空时取到最近一个交易日数据
ktype:string(default=D, 函数内部自动统一为大写)
数据类型 D=日K线,W=周K线,M=月K线,5=5分钟,15=15分钟
30=30分钟,60=60分钟
输出:
--------
DataFrame
date 日期
open 开盘价
high 最高价
close 收盘价
low 最低价
chg 涨跌额
p_chg 涨跌幅
ma5 5日均价
ma10 10日均价
ma20 20日均价
vma5 5日均量
vma10 10日均量
vma20 20日均量
turnover换手率(指数无此项)
"""
code = code_to_APIcode(code.upper())
ktype = ktype.upper()

url = ''
url = get_url(ktype, code)
print(url)

js = json.loads(ping_API(url))
cols = []

if len(js['record'][0]) == 14:
cols = ct.INDEX_DAY_PRICE_COLS
else:
cols = ct.DAY_PRICE_COLS
df = pd.DataFrame(js['record'], columns=cols)

if ktype in ct.K_TYPE_KEY:
df = df.applymap(lambda x:x.replace(u',', u''))
for col in cols[1:]:
df[col]=df[col].astype(float)
if start is not None:
df = df [df.date >= start]
if end is not None:
df = df[df.date <= end]
df = df.set_index('date')
return df

def code_to_APIcode(code):
"""
功能:
验证输入的股票代码是否正确,若正确则返回API对应使用的股票代码
"""
print(code)
if code in ct.INDEX_KEY:
return ct.INDEX_LIST[code]
else:
if len(code) != 6:
raise IOError('code input error!')
else:
return 'sh%s'%code if code[:1] in ['5', '6'] else 'sz%s'%code

def get_url(ktype, code):
"""
功能:
验证输入的K线类型是否正确,若正确则返回url
"""
if ktype in ct.K_TYPE_KEY:
url = ct.DAY_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
ct.K_TYPE[ktype], code)
return url
elif ktype in ct.K_TYPE_MIN_KEY:
url = ct.MIN_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
code, ktype)
return url
else:
raise IOError('ktype input error!')

def ping_API(url):
"""
功能:
向API发送数据请求,若链接正常返回数据
"""
text = ''
try:
req = Request(url)
text = urlopen(req,timeout=10).read()
if len(text) < 15:
raise IOError('no data!')
except Exception as e:
print(e)
else:
return text

#测试入口
print(get_hist_data('601989','2015-07-11','2015-07-22'))

Ⅳ pandas 如何对比判断数据是否在excel表格中

这个不能直接用 ==来筛选‘股票代码’是否在‘持仓代码’中,要用DataFrame的一个内置函数.isin()来判断,详见附图。

好用请采纳给好评,以后有问题还会回答,好用不采纳不给好评的以后有问题一律不回答,谢谢。

Ⅵ 如何编程从免费股票软件中提取实时数据

自己写程序的话,一种方法是从已提供的信息源,例如webservice获取数据。还有种办法就是去连接提供即时信息的网页硬解析。

代码举例如下:

Created on Thu Jul 23 09:17:27 2015
@author: jet
"""
DAY_PRICE_COLS = ['date', 'open', 'high', 'close', 'low', 'volume',
'chg', '%chg', 'ma5', 'ma10', 'ma20',
'vma5', 'vma10', 'vma20', 'turnover']
DAY_PRICE_URL = '%sapi.finance.%s/%s/?code=%s&type=last'
INDEX_KEY = ['SH', 'SZ', 'HS300', 'SZ50', 'GEB', 'SMEB']
INDEX_LIST = {'SH': 'sh000001', 'SZ': 'sz399001', 'HS300': 'sz399300',
'SZ50': 'sh000016', 'GEB': 'sz399006', 'SMEB': 'sz399005'}
INDEX_DAY_PRICE_COLS= ['date', 'open', 'high', 'close', 'low', 'volume',
'chg', '%chg', 'ma5', 'ma10', 'ma20',
'vma5', 'vma10', 'vma20']
K_TYPE_KEY = ['D', 'W', 'M']
K_TYPE_MIN_KEY = ['5', '15', '30', '60']
K_TYPE = {'D': 'akdaily', 'W': 'akweekly', 'M': 'akmonthly'}
MIN_PRICE_URL = '%sapi.finance.%s/akmin?scode=%s&type=%s'
PAGE_TYPE = {'http': 'http://', 'ftp': 'ftp://'}
PAGE_DOMAIN = {'sina': 'sina.com.cn', 'ifeng': 'ifeng.com'}
URL_ERROR_MSG = '获取失败,请检查网络状态,或者API端口URL已经不匹配!'

get_hist_data.py
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 23 09:15:40 2015
@author: jet
"""
import const as ct
import pandas as pd
import json
from urllib2 import urlopen,Request

def get_hist_data(code = None, start = None, end = None, ktype = 'D'):
"""
功能:
获取个股历史交易数据
--------
输入:
--------
code:string
股票代码 比如:601989
start:string
开始日期 格式:YYYY-MM-DD 为空时取到API所提供的最早日期数据
end:string
结束日期 格式:YYYY-MM-DD 为空时取到最近一个交易日数据
ktype:string(default=D, 函数内部自动统一为大写)
数据类型 D=日K线,W=周K线,M=月K线,5=5分钟,15=15分钟
30=30分钟,60=60分钟
输出:
--------
DataFrame
date 日期
open 开盘价
high 最高价
close 收盘价
low 最低价
chg 涨跌额
p_chg 涨跌幅
ma5 5日均价
ma10 10日均价
ma20 20日均价
vma5 5日均量
vma10 10日均量
vma20 20日均量
turnover换手率(指数无此项)
"""
code = code_to_APIcode(code.upper())
ktype = ktype.upper()

url = ''
url = get_url(ktype, code)
print(url)

js = json.loads(ping_API(url))
cols = []

if len(js['record'][0]) == 14:
cols = ct.INDEX_DAY_PRICE_COLS
else:
cols = ct.DAY_PRICE_COLS
df = pd.DataFrame(js['record'], columns=cols)

if ktype in ct.K_TYPE_KEY:
df = df.applymap(lambda x:x.replace(u',', u''))
for col in cols[1:]:
df[col]=df[col].astype(float)
if start is not None:
df = df [df.date >= start]
if end is not None:
df = df[df.date <= end]
df = df.set_index('date')
return df

def code_to_APIcode(code):
"""
功能:
验证输入的股票代码是否正确,若正确则返回API对应使用的股票代码
"""
print(code)
if code in ct.INDEX_KEY:
return ct.INDEX_LIST[code]
else:
if len(code) != 6:
raise IOError('code input error!')
else:
return 'sh%s'%code if code[:1] in ['5', '6'] else 'sz%s'%code

def get_url(ktype, code):
"""
功能:
验证输入的K线类型是否正确,若正确则返回url
"""
if ktype in ct.K_TYPE_KEY:
url = ct.DAY_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
ct.K_TYPE[ktype], code)
return url
elif ktype in ct.K_TYPE_MIN_KEY:
url = ct.MIN_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
code, ktype)
return url
else:
raise IOError('ktype input error!')

def ping_API(url):
"""
功能:
向API发送数据请求,若链接正常返回数据
"""
text = ''
try:
req = Request(url)
text = urlopen(req,timeout=10).read()
if len(text) < 15:
raise IOError('no data!')
except Exception as e:
print(e)
else:
return text

#测试入口
print(get_hist_data('601989','2015-07-11','2015-07-22'))

Ⅶ 如何用python代码判断一段范围内股票最高点

Copyright © 1999-2020, CSDN.NET, All Rights Reserved




登录

python+聚宽 统计A股市场个股在某时间段的最高价、最低价及其时间 原创
2019-10-12 09:20:50

开拖拉机的大宝

码龄4年

关注
使用工具pycharm + 聚宽数据源,统计A股市场个股在某时间段的最高价、最低价及其时间,并打印excel表格输出

from jqdatasdk import *
import pandas as pd
import logging
import sys
logger = logging.getLogger("logger")
logger.setLevel(logging.INFO)

# 聚宽数据账户名和密码设置
auth('username','password')

#获取A股列表,包括代号,名称,上市退市时间等。
security = get_all_securities(types=[], date=None)
pd2 = get_all_securities(['stock'])

# 获取股票代号
stocks = list(get_all_securities(['stock']).index)

# 获取股票名称
stocknames = pd2['display_name']

start_date = '2015-01-01'
end_date = '2018-12-31'
def get_stocks_high_low(start_date,end_date):
# 新建表,表头列
# 为:"idx","stockcode","stockname","maxvalue","maxtime","lowvalue","lowtime"
result = pd.DataFrame(columns=["idx", "stockcode", "stockname", "maxvalue", "maxtime", "lowvalue", "lowtime"])
for i in range(0,stocks.__len__()-1):
pd01 = get_price(stocks[i], start_date, end_date, frequency='daily',
fields=None, skip_paused=False,fq='pre', count=None)
result=result.append(pd.DataFrame({'idx':[i],'stockcode':[stocks[i]],'stockname':
[stocknames[i]],'maxvalue':[pd01['high'].max()],'maxtime':
[pd01['high'].idxmax()],'lowvalue': [pd01['low'].min()], 'lowtime':
[pd01['low'].idxmin()]}),ignore_index=True)

result.to_csv("stock_max_min.csv",encoding = 'utf-8', index = True)
logger.warning("执行完毕!

Ⅷ 怎样用python提取不同股票csv里特定时间段的数据

用pandas库,
import pandas as pd

data = pd.read_csv('train.csv')
train_data = data.values[0:TRAIN_NUM,1:]
train_label = data.values[0:TRAIN_NUM,0]
study.163.com/course/courseMain.htm?courseId=1000035
机器学习正好讲了这个手写识别的例子!

Ⅸ python编程这门科目是用来编写股票指标和选股器的吗

python是一门语言补丁,最大的优势在于拥有众多的包,很多事情都可以做。而在数据分析领域提供了pandas,numpy,matplotlib等进行数据可视化,用于股票,自然也是可以的

Ⅹ 怎么用python计算股票

作为一个python新手,在学习中遇到很多问题,要善于运用各种方法。今天,在学习中,碰到了如何通过收盘价计算股票的涨跌幅。
第一种:
读取数据并建立函数:
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import spline
from pylab import *
import pandas as pd
from pandas import Series
a=pd.read_csv('d:///1.csv',sep=',')#文件位置

t=a['close']
def f(t):
s=[]
for i in range(1,len(t)):
if i==1:
continue
else:
s.append((t[i]-t[i-1])/t[i]*100)
print s
plot(s)

plt.show()
f(t)
第二种:
利用pandas里面的方法:
import pandas as pd

a=pd.read_csv('d:///1.csv')
rets = a['close'].pct_change() * 100
print rets

第三种:
close=a['close']
rets=close/close.shift(1)-1
print rets

总结:python是一种非常好的编程语言,一般而言,我们可以运用构建相关函数来实现自己的思想,但是,众所周知,python中里面的有很多科学计算包,里面有很多方法可以快速解决计算的需要,如上面提到的pandas中的pct_change()。因此在平时的使用中应当学会寻找更好的方法,提高运算速度。

阅读全文

与股票数据pandas相关的资料

热点内容
亚太丝路投资的股票价格指数 浏览:290
硬核资产股票 浏览:605
红黄蓝股票发生了什么影响 浏览:111
上海st股票每天买卖 浏览:19
股票收购重组是好事还是坏事 浏览:536
国瑞置业股票走势分析 浏览:559
股票投资入门ppt 浏览:827
法院清算资产股票会被卖吗 浏览:649
香港交易所股票分析师 浏览:772
股票中国平安价格 浏览:484
股票一亿以上的账户有多少钱 浏览:451
中国医疗集团股票历史数据 浏览:375
免费益盟股票软件官网 浏览:410
股票如何看历史最低 浏览:90
星号st的股票对股民影响多大 浏览:760
信息泄漏注册股票 浏览:963
中国股票是什么制度 浏览:647
通信达软件如何查找站上年线的股票 浏览:108
股票每股公积金和净资产的差别 浏览:724
股票能量指标怎么调出来 浏览:427