導航:首頁 > 數據行情 > pandas模塊獲取國外股票資料庫

pandas模塊獲取國外股票資料庫

發布時間:2024-02-25 12:18:52

⑴ 解決 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

⑵ 如何獲取股票的凈利潤,每股收益,主營營業收入

股票中除了K線中開高低收價格信息外,還有一些其他指標反應股票市場,比如凈利潤、每股收益、主營營業收入。
凈利潤是指企業當期利潤總額減去所得稅後的金額,即企業的稅後利潤。通俗點說就是真正賺到手的錢。
每股收益即每股盈利(EPS),又稱每股稅後利潤、每股盈餘,指稅後利潤與股本總數的比率。是普通股股東每持有一股所能享有的企業凈利潤或需承擔的企業凈虧損。每股收益通常被用來反映企業的經營成果,衡量普通股的獲利水平及投資風險,是投資者等信息使用者據以評價企業盈利能力、預測企業成長潛力、進而做出相關經濟決策的重要的財務指標之一。
主營營業收入指企業從事本行業生產經營活動所取得的營業收入。

如何使用Python查出某隻股票的這些信息呢?答案是使用Python的baostock介面,示例代碼如下:
import baostock as bsimport pandas as pd# 登陸系統lg = bs.login()# 顯示登陸返回信息print('login respond error_code:'+lg.error_code)print('login respond error_msg:'+lg.error_msg)# 查詢季頻估值指標盈利能力profit_list = []rs_profit = bs.query_profit_data(code="sh.600000", year=2017, quarter=2)while (rs_profit.error_code == '0') & rs_profit.next():profit_list.append(rs_profit.get_row_data())result_profit = pd.DataFrame(profit_list, columns=rs_profit.fields)# 列印輸出print(result_profit)# 結果集輸出到csv文件result_profit.to_csv("D:\\profit_data.csv", encoding="gbk", index=False)# 登出系統bs.logout()

返回數據如下,可以看出,有很多有用參數,非常方便。

⑶ 怎麼利用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)

......

⑷ 報錯TypeError: 'NoneType' object is not subscriptable尋求解決辦法

該錯誤意味著您正在嘗試使用方括弧(例如 )訪問對象的元素,但該對象支持且不支持此操作。TypeError: 'NoneType' object is not subscriptableobject[index]None

在這種伍逗特定情況下,看起來函數正在返回而不是預期的數據框。這可能是由於Tushare API或網路連接出現問題。ts.get_hs300s()None

要修復此錯誤,您可以嘗試以下操作:

在這個例子中,我們在嘗試訪問它的「code」列之前檢查變數是否不是。如果數腔念賣據框是 ,我們通過高嘩列印消息來處理這種情況。這可以防止發生錯誤。hs300NoneNoneTypeError: 'NoneType' object is not subscriptable

回答不易望請採納

⑸ 如何選取過去每個月股票的市值 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模塊獲取國外股票資料庫相關的資料

熱點內容
科達股票歷史最低 瀏覽:60
今日股票收益明細那個炒股軟體上有 瀏覽:395
公司已投資股票名義吸納社會資金 瀏覽:361
2018造紙行業股票分析 瀏覽:46
上海證券交易所股票發行 瀏覽:984
長期持有股票和債券 瀏覽:414
股票開戶怎麼領取股東賬戶卡 瀏覽:509
股票賬戶買賣量 瀏覽:944
通達信軟體怎樣找到金山谷的股票 瀏覽:67
股票漲幅同誰比 瀏覽:24
股票賬戶可以綁幾張卡 瀏覽:868
借用他人股票賬戶 瀏覽:94
贏取科技股票 瀏覽:791
女性投資股票 瀏覽:662
一部香港的電影男主買股票 瀏覽:638
騰訊股票安卓手機軟體 瀏覽:10
股票分紅賬戶自動攤薄成本嗎 瀏覽:268
一年之內漲幅最大的股票 瀏覽:985
股票解禁前兩個月走勢 瀏覽:961
長期持有一個股票 瀏覽:218