Օգտագործելով yfinance Python-ում S&P 500 բաժնետոմսերի տվյալներ մուտք գործելու համար
Այս հոդվածում ես պատրաստվում եմ ձեզ ցույց տալ, թե ինչպես կարելի է ստանալ S&P 500 պատմական բաժնետոմսերի տվյալները Yahoo Finance-ից, առբերել S&P 500-ը կազմող բաժնետոմսերը և ստանալ կարևոր ֆինանսական տեղեկատվություն յուրաքանչյուր բաժնետոմսի մասին:
Պարզության համար ես կօգտագործեմ Google Colab նոթատետրը դա ցույց տալու համար: Դուք կարող եք նաև հեշտությամբ օգտագործել Python-ի տեղական օրինակը: Իսկապես կախված է ձեզանից, թե որ մեթոդն եք նախընտրում: Ես հոդված եմ գրել, որը կօգնի ձեզ կարգավորել:
Բաժնետոմսերի տվյալների առբերում Python-ում yfinance-ի միջոցով
Python-ում yfinance գրադարանը լռելյայն հասանելի չէ Google Colab-ում: Մեզ անհրաժեշտ կլինի տեղադրել այն:
pip install yfinance
Երբ այն տեղադրվի, մենք այն կներմուծենք հետևյալ կերպ.
import yfinance as yf
Yahoo Finance-ում S&P 500-ի նշանի կոդը «^GSPC» է: Հետևյալ հրամանը կստեղծի օբյեկտ S&P 500 ինդեքսի համար:
ticker = yf.Ticker("^GSPC")
Հաստատելու համար, որ այն աշխատում է, մենք կարող ենք առբերել ցուցիչի տեղեկատվությունը:
ticker.info
Այստեղ շատ օգտակար տեղեկություններ կան: Ընդամենը առանձնացնելու համար մի քանի…
Քանի որ S&P 500-ը ինդեքս է, որոշ դաշտեր, ինչպիսիք են logo_url-ը, կարող են չաշխատել: Առնվազն Clearbit-ը դրա համար լոգո չի պահում: Սա գործնականում տեսնելու համար մենք կարող ենք համառոտ օգտագործել Apple-ի նշանը (AAPL):
ticker = yf.Ticker("AAPL")
«logo_url»-ն ունի որոշ հետաքրքիր ներուժ: Միգուցե այն կարող է օգտագործվել իսկապես գեղեցիկ վահանակ ստեղծելու համար:
Պատկերը կարող ենք ներբեռնել այսպես…
import urllib.request urllib.request.urlretrieve(ticker.info["logo_url"], "logo.png")
Սա կներբեռնի պատկերը URL-ից «logo_url» դաշտում և կպահի այն տեղայնորեն որպես «logo.png»:
Այնուհետև մենք կարող ենք կարդալ նկարում և ցուցադրել այն: Ես ունեմ դա անելու մի քանի եղանակ, բայց դրանցից միայն մեկը կաշխատի Google Colab-ի հետ: Եթե դուք աշխատում եք Python-ի տեղական տարբերակի հետ, կարող եք նման բան անել:
from PIL import Image img = Image.open("logo.png") img.show()
Չնայած կոդը աշխատում է, Google Colab նոթատետրում պատկերը չի ցուցադրվի: Google Colab-ում պատկերը ցուցադրելու ձևը հետևյալն է…
import cv2 import matplotlib.pyplot as plt img_color = cv2.imread("logo.png", 1) plt.imshow(img_color) plt.axis("off") plt.show()
Պատկերանշանը մշուշոտ է թվում վերևի սքրինշոթում, բայց դա միայն այն պատճառով է, որ Medium-ը մեծացնում է պատկերը: Ինձ համար պարզ է թվում:
Մենք կարող ենք նաև առբերել ամենօրյա միջօրեական պատմական տվյալներն այսպես.
df = yf.download (tickers = "^GSPC", start = "1994-01-07", end = "2022-12-04", interval = "1d") df
Այն, ինչ ինձ իսկապես դուր է գալիս, այն է, որ տվյալները վերադարձվում են որպես Pandas DataFrame: Սա իսկապես հարմար է և խուսափում է ինքնուրույն կատարել փոխակերպման քայլը:
Եթե դուք նոր եք Google Colab-ում, ապա կնկատեք, որ կարիք չկա տպել փոփոխականներ: Դուք կարող եք ուղղակիորեն զանգահարել նրանց, և դրանք կցուցադրվեն: Եթե դուք աշխատում եք Python-ի տեղական տարբերակով, ապա պետք է df-ը փոխարինեք print (df)-ով:
S&P 500 բաժնետոմսերի առբերում՝ օգտագործելով վեբ քերծվածք
Yahoo Finance-ը չի տրամադրում S&P 500 ինդեքսը կազմող բաժնետոմսերի ցանկը, մենք պետք է այլ ճանապարհ գտնենք դա անելու համար:
Եթե նայեք Վիքիպեդիայի էջը S&P 500-ի համար, ապա բոլոր բաժնետոմսերը նշված են այնտեղ: Այն, ինչ մենք կանենք, այն է, որ վերցնենք չմշակված HTML-ը, ճիշտ ձևաչափենք այն և հետո հանենք մեզ անհրաժեշտ տեղեկատվությունը: Կան մի քանի գրադարաններ, որոնք մեզ պետք են դա իրականացնելու համար:
import requests import bs4 as bs
«հարցումներ»-ը HTTPS հարցում կկատարի HTML-ն առբերելու համար: «bs4»-ը գեղեցիկ ապուր է և Python փաթեթ է՝ HTML և XML փաստաթղթերը վերլուծելու համար: Այն վերլուծված էջերի համար ստեղծում է վերլուծական ծառ, որը կարող է օգտագործվել HTML-ից տվյալներ հանելու համար, ինչը օգտակար է վեբ քերծման համար:
- Վերցրեք HTML էջը փոփոխականի մեջ, որը կոչվում է «resp»: «resp.text()»-ը կպարունակի չմշակված HTML տեքստ:
resp = requests.get("http://en.wikipedia.org/wiki/List_of_S%26P_500_companies")
2. Օգտագործեք Beautiful Soup-ը HTML-ը ճիշտ ձևավորելու համար: «ապուր» փոփոխականը կպարունակի գեղեցիկ ներկայացված HTML կոդը:
soup = bs.BeautifulSoup(resp.text, "lxml")
3. Փնտրեք Վիքիպեդիայի էջում պարունակվող HTML աղյուսակը և այն հանեք «աղյուսակ» տեքստային փոփոխականի մեջ։
table = soup.find("table", { "class": "wikitable sortable" })
4. Յուրաքանչյուր տողի աղյուսակում կլինեն HTML TR թեգեր տողերի համար և TD թեգեր սյունակների համար, որոնք կպարունակեն ընկերության տեղեկատվությունը, որը մենք փնտրում ենք: Ես ստեղծեցի «tickers» զանգված և կրկնեցի տողերի միջով (բացառությամբ վերնագրի): Այնուհետև ես յուրաքանչյուր ընկերության բաժնետոմսերի կոդը կցեցի «tickers» զանգվածին և վերջում հանեցի նոր տողի նիշը:
tickers = [] for row in table.findAll("tr")[1:]: ticker = row.findAll("td")[0].text tickers.append(ticker.strip())
Արդյունքն այսպիսի տեսք ունի…
Բաժնետոմսերի տեղեկատվության առբերում Python-ում yfinance-ի միջոցով
Yahoo Finance-ը տրամադրում է մի քանի իսկապես օգտակար տեղեկատվություն յուրաքանչյուր բաժնետոմսի մասին: Ես պարզապես պատահականորեն ընտրեցի վերը նշված ցուցակից մեկը՝ «GOOG»:
company = yf.Ticker("GOOG") company.financials
company.earnings
Գաղափարների ոգեշնչում
Այն, ինչ կարող է լինել բավականին զվարճալի նախագիծ, կլինի ստեղծել վեբ վահանակ՝ օգտագործելով Python Django/Flask-ը, ստանալ S&P 500-ի բաժնետոմսերը՝ ներառյալ դրանց անվանումը և պատկերանշանը, և կկարողանաք խորացնել ֆինանսական տվյալները, ինչպես վերը նշված է:
Մայքլ Ուիթլ
- Եթե ձեզ դուր եկավ սա, խնդրում եմ հետևեք ինձ Medium-ում
- Ավելի հետաքրքիր հոդվածների համար խնդրում ենք հետևեք իմ հրապարակմանը
- Հետաքրքրվա՞ծ եք համագործակցել: Եկեք կապվենք LinkedIn-ում
- Աջակցեք ինձ և այլ միջին գրողների գրանցվելով այստեղ
- Խնդրում ենք չմոռանալ ծափահարել հոդվածի համար :) ← Շնորհակալություն: