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

pandas操作股票数据库

发布时间:2022-12-09 21:29:00

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

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

❷ 如何用Python和机器学习炒股赚钱

相信很多人都想过让人工智能来帮你赚钱,但到底该如何做呢?瑞士日内瓦的一位金融数据顾问 Gaëtan Rickter 近日发表文章介绍了他利用 Python 和机器学习来帮助炒股的经验,其最终成果的收益率跑赢了长期处于牛市的标准普尔 500 指数。虽然这篇文章并没有将他的方法完全彻底公开,但已公开的内容或许能给我们带来如何用人工智能炒股的启迪。

我终于跑赢了标准普尔 500 指数 10 个百分点!听起来可能不是很多,但是当我们处理的是大量流动性很高的资本时,对冲基金的利润就相当可观。更激进的做法还能得到更高的回报。

这一切都始于我阅读了 Gur Huberman 的一篇题为《Contagious Speculation and a Cure for Cancer: A Non-Event that Made Stock Prices Soar》的论文。该研究描述了一件发生在 1998 年的涉及到一家上市公司 EntreMed(当时股票代码是 ENMD)的事件:

“星期天《纽约时报》上发表的一篇关于癌症治疗新药开发潜力的文章导致 EntreMed 的股价从周五收盘时的 12.063 飙升至 85,在周一收盘时接近 52。在接下来的三周,它的收盘价都在 30 以上。这股投资热情也让其它生物科技股得到了溢价。但是,这个癌症研究方面的可能突破在至少五个月前就已经被 Nature 期刊和各种流行的报纸报道过了,其中甚至包括《泰晤士报》!因此,仅仅是热情的公众关注就能引发股价的持续上涨,即便实际上并没有出现真正的新信息。”

在研究者给出的许多有见地的观察中,其中有一个总结很突出:

“(股价)运动可能会集中于有一些共同之处的股票上,但这些共同之处不一定要是经济基础。”

我就想,能不能基于通常所用的指标之外的其它指标来划分股票。我开始在数据库里面挖掘,几周之后我发现了一个,其包含了一个分数,描述了股票和元素周期表中的元素之间的“已知和隐藏关系”的强度。

我有计算基因组学的背景,这让我想起了基因和它们的细胞信号网络之间的关系是如何地不为人所知。但是,当我们分析数据时,我们又会开始看到我们之前可能无法预测的新关系和相关性。

如果你使用机器学习,就可能在具有已知和隐藏关系的上市公司的寄生、共生和共情关系之上抢占先机,这是很有趣而且可以盈利的。最后,一个人的盈利能力似乎完全关乎他在生成这些类别的数据时想出特征标签(即概念(concept))的强大组合的能力。

我在这类模型上的下一次迭代应该会包含一个用于自动生成特征组合或独特列表的单独算法。也许会基于近乎实时的事件,这可能会影响那些具有只有配备了无监督学习算法的人类才能预测的隐藏关系的股票组。

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

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

❹ 怎么利用pandas做数据分析

pandas的初级功能

1、逻辑运算

data[data['column_1']=='french']

data[(data['column_1']=='french') & (data['year_born']==1990)]

data[(data['column_1']=='french')&(data['year_born']==1990)&(data['city']=='London')]

如果要根据逻辑操作对数据进行运算,在使用& (AND)、~ (NOT)和| (OR)等逻辑操作之前和之后添加“(”&“)”。

data[data['column_1'].isin(['french', 'english'])]

不要为同一列编写多个OR,最好是使用.isin()函数。

2、基本绘图

多亏了matplotlib包,这个特性才得以实现。就像我们在介绍中说的,它可以直接用在pandas身上。

如果你使用Jupyter,在绘图之前,不要忘记写这一行(在代码中只写一次)

3、更新数据

data.loc[8, 'column_1'] = 'english'

将' column_1 '的第8行值替换为' english '

data.loc[data['column_1']=='french', 'column_1'] = 'French'

在一行中更改多行值

pandas的中级功能

1、计算功能

data['column_1'].value_counts

2、对全行、全列或所有数据的操作

data['column_1'].map(len)

len()函数应用于“column_1”的每个元素

map()操作将一个函数应用于列的每个元素。

data['column_1'].map(len).map(lambda x : x/100).plot()

pandas的另一个特点是进行链式操作。它可以帮助你在一行代码中执行多个操作,从而更加简单和高效。

data.apply(sum)

.apply()将函数应用于列。

.applymap()将一个函数应用于表(DataFrame)中的所有单元格。

3、tqdm包

在处理大型数据集时,pandas可能需要一些时间来运行.map()、.apply()、.applymap()操作。tqdm是一个非常有用的包,它可以帮助预测这些操作何时完成。

from tqdm import tqdm_notebook

tqdm_notebook().pandas()

用pandas设置tqdm

data['column_1'].progress_map(lambda x : x.count('e'))

将.map()替换为.progress_map(),.apply()和.applymap()也是一样

图4 这是你在Jupyter上看到的的进度条

4、相关矩阵和散射矩阵

data.corr()

data.corr().applymap(lambda x : int(x*100)/100)

......

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

自己写程序的话,一种方法是从已提供的信息源,例如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遍历语句求指导,如何通过python下载某时期所有股票日线信息然后存文件

你可以去官网看看怎么去做,

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

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

❽ 怎么用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_datareader 无法获取雅虎财经数据的问题

pandas_datareader 是重要的 pandas 相关包,原来是 pandas.io.data 方法,用于获取接口数据,比如雅虎财经上的数据或者美联储路易斯安娜分行的数据,但是在最近版本(比如 pandas 0.20)中 pandas.io.data 的方法独立出来称为一个新的包 pandas_datareader 。

雅虎财经和谷歌财经的接口变换频繁。如果用 pip install pandas_datareader ,已经无法得到雅虎财经。

pandas_datareader github Issuse #315 针对的就是雅虎财经接口无法访问的问题, gusutabopb 在 5月21日进行了成功修正,并提供了他修正后的 pandas_datareader 新版本。

该修正版本的安装方法是

安装以后测试获取 google 的股票数据成功。

参考:
Issues with the data reader fetching yahoo finance #315

Error with pulling data from Yahoo Finance

❿ 数据分析—Pandas删除数据的几种情况

开始之前,pandas中DataFrame删除对象可能存在几种情况

本文就针对这四种情况探讨一下如何操作。

模拟了一份股票交割的记录。

也可以根据行号删除记录,比如删除第三行

注意,这个办法其实不是按照行号删除,而是按照索引删除。如果index为3,则会将前4条记录都删除。这个方法支持一个范围,以及用负数表示从末尾删除。

本例其实是筛选,如果需要保留,可以将筛选后的对象赋值给自己即可。

如果想取包含某些字符的记录,可以去掉~

完成~
希望本文的内容对大家的学习或者工作能带来一定的帮助,每天进步一点点,加油。

阅读全文

与pandas操作股票数据库相关的资料

热点内容
股票公式只使用当天数据 浏览:469
股票的短期中期长期趋势 浏览:790
股票很费时间 浏览:928
st信通时5g股票吗 浏览:989
股票实时数据和分时数据区别 浏览:251
西安旅游股票赚钱 浏览:997
股票代码30038的今日走势 浏览:418
华峰铝业股票历史数据 浏览:669
家庭股票投资组合建议 浏览:37
打新股需要账户有股票还是资金 浏览:215
股票账户销户收费 浏览:654
股票中国生物 浏览:573
股票中的业绩补偿什么意思 浏览:505
闲置资金投资股票的目的 浏览:262
股票买亏怎么赚钱 浏览:695
证券之星股票服务 浏览:716
股票型基金最低买多少 浏览:442
中国信托银行卖股票 浏览:773
公司购买股票进行资本投资 浏览:56
工商银行股票现价格是多少 浏览:115