導航:首頁 > 數據行情 > pandas股票數據題目

pandas股票數據題目

發布時間:2022-09-02 06:26:50

㈠ 怎麼利用pandas做數據分析

Pandas是Python下一個開源數據分析的庫,它提供的數據結構DataFrame極大的簡化了數據分析過程中一些繁瑣操作。
1. 基本使用:創建DataFrame. DataFrame是一張二維的表,大家可以把它想像成一張Excel表單或者Sql表。Excel 2007及其以後的版本的最大行數是1048576,最大列數是16384,超過這個規模的數據Excel就會彈出個框框「此文本包含多行文本,無法放置在一個工作表中」。Pandas處理上千萬的數據是易如反掌的sh事情,同時隨後我們也將看到它比SQL有更強的表達能力,可以做很多復雜的操作,要寫的code也更少。

㈡ 怎樣用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
機器學習正好講了這個手寫識別的例子!

㈢ 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和機器學習炒股賺錢

相信很多人都想過讓人工智慧來幫你賺錢,但到底該如何做呢?瑞士日內瓦的一位金融數據顧問 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只是個好用的工具,方法都是一樣的,只是效率問題
有多少人工,就有多少智能

㈦ PYthon遍歷語句求指導,如何通過python下載某時期所有股票日線信息然後存文件

你可以去官網看看怎麼去做,

㈧ 如何選取過去每個月股票的市值 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)

㈨ 利用pandas處理數據的時候,要新建一列,統計指定紅色字體對應的列中,每一行有多少個「否」,怎麼寫。




import pandas as pd
df=pd.read_excel(r'd:/tj.xlsx')
df['「否」計數']=df.applymap(lambda x:1 if x=='否' else 0).T.sum()
df.to_excel(r'd:/tj_out.xlsx',index=None)

#如題目中紅色的列名,可用iloc指定一下再綁定到df上。

㈩ 最全的pandas面試基礎100題目

在進行下面的題目操作時,一定要先導入上面的兩個數據分析包 pandas、numpy

1. 如何用Python的列表創建一個series?

輸出:

一個series是一個一維的標記數組,可以容納任何數據類型(整數、字元串、浮點數、Python對象等)。必須記住,與Python列表不同,一個series總是包含相同類型的數據。

2.如何使用列表創建一個DataFrame?

輸出:

3.如何使用Series 字典對象生成 DataFrame?

輸出:

4.如何在pandas中創建一個空的DataFrame?
要創建一個完全空的pandas dataframe,我們使用以下操作:

輸出:

已知有這樣的數據,如何進行查看

輸出:

2.如何查看尾部數據?

3.如何快速查看數據的統計摘要?

4.如何查詢索引和列名?

1.簡述Pandas Index
在panda中建立索引意味著簡單地從DataFrame中選擇特定的數據行和列。
pandas支持四種類型的多軸索引,它們是:

它們統稱為索引器。這些是迄今為止索引數據最常見的方法。這四個函數有助於從DataFrame獲取元素、行和列。

2.Pandas 定義重新索引(Reindexing)
重新索引會更改DataFrame的行標簽和列標簽。重新索引意味著使數據符合特定軸上給定的一組標簽。
多個操作可以通過像這樣的索引來完成:

輸出:

3.如何設置索引?

panda set_index() 是一種將列表、序列或dataframe設置為dataframe索引的方法。
語法:
DataFrame.set_index(keys, inplace=False)
參數:

改變索引列
在本例中,名稱列被用作DataFrame的索引列

輸出:
如輸出圖像所示,以前索引列是一系列數字
Before Operation

After Operation

4.如何重置索引?
Pandas Series.reset_index()
函數的作用是:生成一個新的DataFrame或帶有重置索引的Series。

例1: 使用 Series.reset_index() 函數重置給定Series對象的索引

輸出:

現在,我們將使用Series.reset_index()函數來重置給定的series對象的索引

輸出 :

從輸出中可以看到,該 Series.reset_index() 函數已將給定Series對象的索引重置為默認值。它保留了索引,並將其轉換為列。

1.1先創建數據:

1.2選擇單列,產生 Series

詳見 按標簽選擇 。

2.1用標簽提取一行數據:

詳見 按位置選擇 。

3.1用整數位置選擇:

4.1用單列的值選擇數據:

5.1用索引自動對齊新增列的數據:

1.如何得到一個數列的最小值、第25百分位、中值、第75位和最大值?

輸出:

Pandas dataframe.mean(axis=None) 函數返回所請求軸(axis=0代表對列進行求平均值,axis=1代表對行進行求平均值)的值的平均值。

示例: 使用 mean() 函數查找索引軸上所有觀測值的平均值。

輸出:

讓我們使用datafame .mean()函數來查找索引軸上的平均值。

3.如何將函數應用到DataFrame中的每個數據元素?
可以使用 apply() 函數以便將函數應用於給定dataframe中的每一行。讓我們來看看我們完成這項任務的方式。
實例:

輸出:

4.如何在panda中獲得一個DataFrame的行數和列數?

輸出:

獲取df的行和列計數

輸出:

5.如何在panda DataFrame中獲得列值的總和?
Pandas dataframe.sum() 函數返回所請求軸的值的和

語法: DataFrame.sum(axis=None, skipna=None, )
參數:

示例1: 使用 sum() 函數查找索引軸上所有值的總和

現在求出沿索引軸的所有值的和。我們將跳過計算和時的NaN值。

輸出:

如何將新行追加到pandas DataFrame?
Pandas dataframe.append() 函數的作用是:將其他dataframe的行追加到給定的dataframe的末尾,返回一個新的dataframe對象。

語法:
DataFrame.append( ignore_index=False,)
參數:

示例1: 創建兩個數據框,然後將第二個附加到第一個。

現在將df2附加到df1的末尾

輸出:

請注意,第二個DataFrame的索引值保留在附加的DataFrame中。如果我們不希望發生這種情況,則可以設置ignore_index = True。

輸出 :

「group by」 指的是涵蓋下列一項或多項步驟的處理流程:

詳見 分組 。

輸出:

1.先分組,再用 sum() 函數計算每組的匯總數據:

輸出:

2.多列分組後,生成多層索引,也可以應用 sum 函數:

輸出:

如何將numpy數組轉換為給定形狀的DataFrame?

輸出:

輸出:

透視表是一種可以對數據動態排布並且分類匯總的表格格式,在pandas中它被稱作pivot_table。
pivot_table(data, values=None, index=None, columns=None)
參數:

詳見: 數據透視表

列印輸出:

用上述數據生成數據透視表非常簡單:

返回結果:

1.如何將列添加到pandas DataFrame?
源數據:

輸出:

輸出:

2.如何向panda DataFrame添加索引、行或列?
向DataFrame添加索引
如果您創建了一個DataFrame, panda允許將輸入添加到索引參數中。它將確保您擁有所需的索引。否則,在默認情況下,DataFrame包含一個數值索引,該索引從0開始,在DataFrame的最後一行結束。

向DataFrame添加行、列
我們可以使用.loc、iloc和ix將行、列插入到DataFrame中。

添加具有特定索引名的行:

輸出:

3.如何在panda DataFrame上進行迭代?
您可以通過結合使用for循環和對DataFrame的iterrows()調用來遍歷DataFrame的行。

輸出:

4.我們如何排序DataFrame?
我們可以通過以下幾種有效地在DataFrame中執行排序:

(1)按標簽
可以使用sort_index()方法對數據dataframe進行排序。可以通過傳遞axis參數和排序順序來實現。默認情況下,按升序對行標簽進行排序。

閱讀全文

與pandas股票數據題目相關的資料

熱點內容
股票每股公積金和凈資產的差別 瀏覽:722
股票能量指標怎麼調出來 瀏覽:425
股票用現金買嗎 瀏覽:597
好股票網生命線指標 瀏覽:116
手機上怎麼看股票業績 瀏覽:191
中國最大樹脂廠股票號 瀏覽:151
推薦微信的股票軟體 瀏覽:644
露振科技股票行情 瀏覽:745
小窗口的股票軟體 瀏覽:896
重新開一個股票賬戶 瀏覽:123
國家隊持倉股票信息 瀏覽:108
股票回購方式中不需要支付大量現金的是 瀏覽:629
恆康醫葯股票走勢 瀏覽:1005
中國國債股票 瀏覽:443
股票很久沒漲停 瀏覽:109
股票看盤軟體教學視頻直播 瀏覽:115
中國銀聯股票有嗎 瀏覽:50
etf和普通股票一樣買賣嗎 瀏覽:24
搜於特股票今天走勢 瀏覽:894
煤炭價格上漲對煤股票的影響 瀏覽:905