網頁

2023年4月30日 星期日

使用 Python 製作台股代碼與股票名稱對應字典(二)

上一篇提到將台股上市上櫃公司名稱從證交所網頁抓下來,並存成 dataframe 的格式,如下:

如果要用 yfinance 來取得股價寫法是:

import yfinance as yf
hist = yf.Ticker('1101.TW') # 台泥
price_df = hist.history(period='1d', auto_adjust=False)

因此我們要有一個 '1101.TW' 可以對應到 '台泥' 的一個 table,我們可以這樣做,

將上一篇得到的 df 的有價證券代號及名稱欄位的值切開,例如上圖,索引0台泥的 '有價證券代號及名稱' 欄位的值是 '1101  台泥',我們要切開成為 '1101.TW' 和 '台泥'

code, name = df['有價證券代號及名稱'][0].split()
print(code, name)

結果:1101 台泥 
將變數code+'.TW',就是股票代碼,股票名稱就是'台泥',然後使用 code 當作字典的key,
name當作字典的value,我們可以用一個迴圈跑完整個 df,順便將產業別也放上去
stock_dict = {}
for index, item in enumerate(df['有價證券代號及名稱']):
name_list = item.split()
code = name_list[0] + '.TW'
name = name_list[1]
key = code
value = [name, df['產業別'][index]]
stock_dict[key] = value
print(index, code, value)

 
 
 
 
 
然後將上面的程式寫成 function: 
# 製作股票代碼與股票名稱dict
def make_stock_dict(df):
stock_dict = {}
for index, item in enumerate(df['有價證券代號及名稱']):
name_list = item.split()
code = name_list[0] + '.TW'
name = name_list[1]
key = code
value = [name, df['產業別'][index]]
stock_dict[key] = value
return stock_dict
要呼叫的時候就這樣寫:
stock_dict = make_stock_dict(df)

返回的變數 stock_dict 是字典型態,
鍵(key)是股票代碼;值(value)是一個list,包含公司名稱和產業別。
這樣就製作了一個台股代碼和公司,名產業別的一個對照清單。

 
你可以參考上一篇:
1. 用 Python 取得台股上市上櫃清單(一)
 
 



沒有留言:

張貼留言