
ãã¯ãããžãŒã¯è³ç£ã«ãªããŸãã-éèæ©é¢ã¯çŸåšãã³ã¢ããžãã¹ã«åŸäºããŠããã ãã§ãªããæ°ããéçºã«å€ãã®æ³šæãæã£ãŠããŸãã é«åšæ³¢ååŒã®äžçã§ã¯ãæãå¹æçãªã ãã§ãªããé«éãªãœãããŠã§ã¢ãšãââãŒããŠã§ã¢ã®ææè ã«ãã£ãŠæé«ã®çµæãéæããããšæ¢ã«è¿°ã¹ãŸããã
éèåéã§æã人æ°ã®ããããã°ã©ãã³ã°èšèªã®äžã§ããRãšPythonã泚ç®ã«å€ããŸãããC ++ãCïŒãJavaããã䜿çšãããŸãã DataCamp Webãµã€ãã§å ¬éãããŠããã¬ã€ãã§ã¯ãPythonã䜿çšããŠéèã¢ããªã±ãŒã·ã§ã³ãäœæããæ¹æ³ã«ã€ããŠèª¬æããŠããŸãããã®è³æã®åç« ã®äžé£ã®é©å¿èšäºã玹ä»ããŸãã
ãªãŒããŒã·ããæ§é ïŒ
- æåã®éšåã¯ãåžå Žã®åå¿è ã察象ãšããŠãããéèåžå Žã®æ§é ãæ ªåŒãšååŒæŠç¥ãæç³»åããŒã¿ãããã³éçºãéå§ããããã«å¿ èŠãªãã®ã«çŠç¹ãåœãŠãŸãã
- 第2éšã§ã¯ãPandas Pythonã©ã€ãã©ãªã䜿çšããŠããã©ãã£ãªãã£ã®èšç®ã移åå¹³åãªã©ã®æç³»åããŒã¿ããã³è²¡ååæããŒã«ã®æäœã®æŠèŠã瀺ããŸãã
- 次ã«ãåçŽãªã€ã³ãã«ã¹ååŒæŠç¥ã®å³æéçºã«é²ã¿ãŸãã
- 第4éšã§ã¯ãå±¥æŽããŒã¿ã«å¯ŸããæŠç¥ã®ããã¯ãã¹ããå®è¡ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
- çµè«ãšããŠãçç£æ§ãé«ããããã«æŠç¥ãæé©åããããšã®åé¡ãšããã®ããã©ãŒãã³ã¹ãšä¿¡é Œæ§ãè©äŸ¡ããããšã«ã€ããŠè°è«ããŸãã
ã¯ããã«ïŒéèåã®æ§é ã«ã€ããŠå¹³æãªèšèã§
ååŒæŠç¥ã®äžçã«çªå ¥ããåã«ãåºæ¬çãªæŠå¿µã«è§Šããããšã¯çã«ããªã£ãŠããŸãã ãã ããããã¯ã以äžã§èª¬æããå 容ãå®å šã«åå¿è åãã«èšèšãããŠãããšããæå³ã§ã¯ãããŸããã æåã«Pythonã䜿çšããŠããŒã¿ãæäœããã³ãŒã¹ãããç解ããPythonãªã¹ããšããã±ãŒãžã®æäœæ¹æ³ãæ³åããŠã¿ãŠãã ãããå°ãªããšãåºæ¬çãªã¬ãã«ã§ãNumPyãšPandasã«ç²ŸéããŠãããšæããŸãã
æ ªåŒååŒæ
äŒæ¥ãããžãã¹ã®éçºãç¶ç¶ããããæ°ãããããžã§ã¯ããç«ã¡äžããããæ¡å€§ãããããå Žåãè³é調éããŒã«ãšããŠæ ªåŒã䜿çšã§ããŸãã æ ªåŒã¯äŒç€Ÿã®æææš©ã®æ ªåŒãè¡šããæ ªåŒã¯çŸéãšäº€æãããŸãã æ ªåŒã¯å£²è²·ããããšãã§ããŸãããã®ãããªååŒã®åå è ã¯ã以åã«çºè¡ãããæ¢åã®æ ªåŒãæäœããŸãã
ç¹å®ã®æ ªåŒã®å£²è²·äŸ¡æ Œã¯ãæ ªåŒãçºè¡ããäŒç€Ÿã®æ¥çžŸã«é¢ä¿ãªããåžžã«å€åããå¯èœæ§ããããŸãããã¹ãŠã¯éèŠãšäŸçµŠã«ãã£ãŠæ±ºå®ãããŸãã æ ªåŒãšãããšãã°åå ¥è³éãåŒãä»ããããã«äœ¿çšãããåµåžïŒåµåžïŒãšã®éããç解ããããšãéèŠã§ãã
ååŒã«é¢ããŠã¯ãæ ªåŒã®å£²è²·ã ãã§ãªããéèååãã貎éå±ãç³æ²¹ãªã©ã®è³æºãå«ãããŸããŸãªè³ç£ã§ååŒãå®äºããããšãã§ããŸãã
æ ªåŒãè³Œå ¥ãããšãæè³å®¶ã¯äŒç€Ÿã®ç¹å®ã®æ ªåŒãåãåãããããããã®æ ªåŒã売åŽããããšã«ãããå°æ¥çã«ééçå©çãåŸãããšãã§ããŸãã æŠç¥ã¯ç°ãªãå¯èœæ§ããããŸããæ ªåŒã®ãããªãæé·ãæåŸ ããŠé·ãååŒïŒé·ãïŒããããæè³å®¶ãæ ªåŒãããå®ããªããšä»®å®ãããšçãååŒããããŸãããããã£ãŠãå°æ¥ãããäœãäŸ¡æ Œã§ãè²·ãæ»ããããšãæåŸ ããŠæ ªåŒã売åŽããŸãã
ãã¬ãŒãã£ã³ã°æŠç¥ã®éçºã«ã¯ãããšãã°æ©æ¢°åŠç¿ã¢ãã«ã®æ§ç¯ã«é¡äŒŒããããã€ãã®æ®µéãå«ãŸããŸãïŒæåã«æŠç¥ãçå®ããã³ã³ãã¥ãŒã¿ãŒã§å®è¡ã§ãã圢åŒã§èšè¿°ãã次ã«çµæã®ããã°ã©ã ã®ããã©ãŒãã³ã¹ããã¹ãããæé©åããŠããæå¹æ§ãè©äŸ¡ããå¿ èŠããããŸããšä¿¡é Œæ§ã
ååŒæŠç¥ã¯éåžžãããã¯ãã¹ãã®å©ããåããŠãã§ãã¯ãããŸããããã¯ãæŠç¥ããªãŒã¯ã·ã§ã³ã®å±¥æŽããŒã¿ã§ãå®è¡ããããã¢ãããŒãã§ã-ããã°ã©ã ã«åºã¥ããŠãã©ã³ã¶ã¯ã·ã§ã³ãçæãããŸãã ããã«ããããã®ãããªæŠç¥ãéå»ã«èŠ³å¯ãããåžå Žç¶æ³ã®çºå±ã«åå ¥ããããããã©ãããç解ããããšãã§ããŸãã ãããã£ãŠãå ¥æã®æŠç¥ã®èŠéãããªã¢ã«ã¿ã€ã ã§äºåã«è©äŸ¡ããããšãå¯èœã§ãã åæã«ãå®éã®åžå Žã§äœæ¥ããå Žåãå±¥æŽããŒã¿ã®è¯å¥œãªããã©ãŒãã³ã¹ãç¹°ãè¿ããããšããä¿èšŒã¯ãããŸããã
æç³»åããŒã¿
æç³»åã¯ãé£ç¶ããçããæéééã§ååŸãããäžé£ã®ããžã¿ã«ããŒã¿ã§ãã éèã§ã¯ããããã®ã·ãªãŒãºã䜿çšããŠãäžå®ã®ééã§èšé²ãããäžå®æéã®äŸ¡æ Œã®åãã远跡ããŸãã ããã¯æ¬¡ã®ãããªãã®ã§ãã

X軞ã«ã¯æ¥ä»ããããäŸ¡æ Œã¯Y軞ã«ãããŸãããã®å Žåã®ãé£ç¶ããçããæéééããšã¯ãæ¥ä»ã2é±éã®ééã§æé軞ã«æ²¿ã£ãŠé 眮ãããŠããããšãæå³ããŸãã2005幎3æ7æ¥ãš2005幎3æ31æ¥ãæ¯èŒã§ããŸãã 2005幎4æ5æ¥ããã³2005幎4æ19æ¥ïŒ ããã§ãæ¥ä»ã¯æãæåã«ã次ã«æ¥ãæ¥ããšãã«ç±³åœã§åãå ¥ãããã圢åŒã§èšé²ãããŸã ïŒ
ãã ãã財åããŒã¿ã«ã¯éåžž2ã€ã®ãã©ã¡ãŒã¿ãŒïŒäŸ¡æ Œãšæ¥ä»ïŒãå«ãŸããŸãããã5ã€-ååŒæéã®ãµã€ãºã«å ããŠãããã¯ååŒæéã®å§å€ããã®æéå ã®æé«å€ãšæäœäŸ¡æ Œãæéã®çµå€ã§ãã ããã¯ã1æ¥ã®æéãèæ ®ããŠããå ŽåãããŒã¿ã®åæã«ãããéžæããæ¥ã®ååŒã®éå§æãšçµäºæã®äŸ¡æ Œã¬ãã«ãããã³å ¥æäžã®æé«äŸ¡æ ŒãšæäœäŸ¡æ Œã«é¢ããæ å ±ãåŸãããããšãæå³ããŸãã
ãã®ã¬ã€ãã®åŠç¿ãç¶ããããã«ç¥ã£ãŠããå¿ èŠã®ããåºæ¬çãªæŠå¿µã¯ãäžèšã§èª¬æãããŠããŸãã
Pythonãã¡ã€ãã³ã¹ã®åºç€ïŒãã³ã
Pythonã䜿çšããŠéèã¢ããªã±ãŒã·ã§ã³ãéçºãããšãã«æãèŠæ±ãããããŒã«ã®1ã€ã¯ãPandasããã±ãŒãžã§ãã ããã¯æåãããã§ã«å¿ èŠã§ãããéçºããã»ã¹ãæ·±ãããã«ã€ããŠãNumPyãSciPyãMatplotlibãªã©ã®ããã±ãŒãžãå¿ èŠã«ãªããŸãã
ã¯ããã«ããã³ãã«çŠç¹ãåœãŠããã®ããŒã«ãæç³»ååæã«é©çšããŠã¿ãŸãããã 以äžã§ã¯ããã®ããã±ãŒãžã䜿çšããŠããŒã¿ãã€ã³ããŒããåæãæäœããæ¹æ³ã«ã€ããŠèª¬æããŸãã
財åããŒã¿ãã€ã³ããŒããã
pandas-datareaderããã±ãŒãžã䜿çšãããšãGoogleãYahooïŒãªã©ã®ãœãŒã¹ããããŒã¿ãåä¿¡ã§ããŸãã éèæ©é¢ãŸãã¯äžçéè¡-å©çšå¯èœãªããŒã¿ãœãŒã¹ã®è©³çŽ°ã«ã€ããŠã¯ã ããã¥ã¡ã³ããã芧ãã ããã ãã®ã¬ã€ãã§ã¯ãYahooïŒããã®ããŒã¿ã®ååŸã«ã€ããŠèª¬æããŸãã ãã¡ã€ãã³ã¹ éå§ããã«ã¯ãpipã䜿çšããŠããã±ãŒãžã®ææ°ããŒãžã§ã³ãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
pip install pandas-datareader
éçºäžã®ããŒãžã§ã³ãã€ã³ã¹ããŒã«ããæé ãããã«ç€ºããŸã ã
import pandas_datareader as pdr import datetime aapl = pdr.get_data_yahoo('AAPL', start=datetime.datetime(2006, 10, 1), end=datetime.datetime(2012, 1, 1))
å°ãåãŸã§ã¯Yahoo APIã«å€æŽããã£ããããèªåã§ã©ã€ãã©ãªãæäœããã«ã¯ãå ¬åŒããããåŸ ã€ããšãã§ããããããã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã ãã®åé¡ã«ã€ããŠã¯ã ããã§è©³ãã説æããŸã ã ãã ãããã®ã¬ã€ãã§ã¯ãããŒã¿ã¯äºåââã«ããŠã³ããŒããããŠãããããåŠç¿ããŠãåé¡ã¯ãããŸããã
ãŸããpandas-datareaderã¯ããŒã¿ãããŒãããããã®äŸ¿å©ãªããŒã«ã§ãããPythonã®å¯äžã®ããŒã«ã§ã¯ãªãããšãç解ããããšãéèŠã§ãã Quandlãªã©ã®ã©ã€ãã©ãªã䜿çšããŠãGoogle FinanceãµãŒãã¹ããããŒã¿ãåä¿¡ããããšãã§ããŸã ã
import quandl aapl = quandl.get("WIKI/AAPL", start_date="2006-10-01", end_date="2012-01-01")
ãŸããå€ãã®äººã ã¯ãExcelãããŒã¿åæã®éèåéã§éåžžã«äººæ°ãããããšãç¥ã£ãŠããŸãã å°æ¥ã®äœæ¥ã®äŸ¿å®ã®ããã«ããã®ããŒã«ãPythonãšçµ±åã§ããŸãïŒ ãªã³ã¯ã«ã€ããŠè©³ããã¯ãã¡ãïŒã
æç³»åããŒã¿ã®æäœ
ããŒã¿ãã€ã³ããŒãããããã«ãpandas_datareaderã䜿çšããŸããã ãã®çµæãaaplãªããžã§ã¯ããåºçŸããŸãã-ããã¯DataFrameãã€ãŸããæœåšçã«ç°ãªãã¿ã€ãã®åãæã€2次å ã®ååä»ãããŒã¿æ§é ã§ãã ãã®ãããªãã¬ãŒã ã§äœæ¥ããå Žåãæåã«è¡ãããšã¯ãããŒã¿ãã¬ãŒã ã®æåãšæåŸã®åãèŠãããã«headïŒïŒããã³tailïŒïŒé¢æ°ãå®è¡ããããšã§ãã ããŠã³ããŒãããããŒã¿ã®æçšãªçµ±èšæŠèŠãååŸããã«ã¯ãdescribeïŒïŒé¢æ°ã䜿çšã§ããŸãã
ãã®ã³ãŒãã®äŸã¯ããœãŒã¹è³æããŒãžã«ãããŸã ã
ããŒã¿ã«ã¯ãååŒæéã®å§å€ãšçµå€ãããã³æé«äŸ¡æ ŒââãšæäœäŸ¡æ Œã®4ã€ã®åãå«ãŸããŠããŸãã1æ¥ã®ééãšAppleæ ªãèæ ®ããŸãã ãŸãã2ã€ã®è¿œå ã®åïŒVolumeãšAdj CloseãååŸããŸãã ãããã®æåã®ãã®ã¯ãååŒæ¥ã«ååŒãè¡ãããæ ªåŒæ°ãèšé²ããããã«äœ¿çšãããŸãã 2çªç®ã®åã¯ã調æŽæžã¿ãçµå€ã§ããããã¯ã次ã®ååŒæ¥ã®å§æ¥åã«å®äºããŠããå¯èœæ§ã®ããåšåº«ã«å¯Ÿãããã¹ãŠã®ã¢ã¯ã·ã§ã³ãæéã®çµå€ã«è¿œå ãããããšãæå³ããŸãã
ããŒã¿ãCSVãã¡ã€ã«ã«ä¿åããå¿ èŠãããå Žåãããã¯to_csvïŒïŒé¢æ°ã䜿çšããŠè¡ãããšãã§ããread_csvïŒïŒã䜿çšããŠãã¡ã€ã«ãèªã¿åãããšãã§ããŸã-ããã¯ãããŒã¿ãœãŒã¹ãå€æŽããããã®ã¢ã¯ã»ã¹ãäžæçã«å€±ãããç¶æ³ã«åœ¹ç«ã¡ãŸãã
import pandas as pd aapl.to_csv('data/aapl_ohlc.csv') df = pd.read_csv('data/aapl_ohlc.csv', header=0, index_col='Date', parse_dates=True)
ããŠã³ããŒãããããŒã¿ã®åºæ¬çãªåæãçµãã£ããã次ã«é²ã¿ãŸãããã ãããè¡ãã«ã¯ãããšãã°ãç¹å®ã®åã®æåŸã®10è¡ãéžæããŠãã€ã³ããã¯ã¹ãšåã調ã¹ãããšãã§ããŸãã ããã¯ãµãã»ãããšåŒã°ããŸããããã¯ã䜿çšå¯èœãªããŒã¿ã®å°ããªã»ããã®ã¿ãååŸãããããã§ãã çµæã®ãµãã»ããã¯ã·ãªãŒãºãã€ãŸãã1次å ã®ååä»ãé åã§ãã
ã€ã³ããã¯ã¹åãšããŒã¿åã確èªããã«ã¯ãã€ã³ããã¯ã¹å±æ§ãšåå±æ§ã䜿çšããŸãã ãã®åŸãåcolumnã®æåŸã®10åã®èŠ³æž¬å€ã®ãµãã»ãããéžæã§ããŸãã ãããã®å€ãåé¢ããã«ã¯ãè§æ¬åŒ§ã䜿çšããŸãã æåŸã®å€ã¯tså€æ°ã«é 眮ããããã®ã¿ã€ãã¯typeïŒïŒé¢æ°ã䜿çšããŠãã§ãã¯ãããŸãã
# Inspect the index aapl.index # Inspect the columns aapl.columns # Select only the last 10 observations of `Close` ts = aapl['Close'][-10:] # Check the type of `ts` type(ts)
è§æ¬åŒ§ã䜿çšããã®ã¯äŸ¿å©ã§ãããããã¯ãã³ãã§äœæ¥ããéã®æãäžè¬çãªæ¹æ³ã§ã¯ãããŸããã ãããã£ãŠãé¢æ°locïŒïŒããã³ilocïŒïŒãæ€èšãã䟡å€ããããŸããæåã®é¢æ°ã¯ã©ãã«ããŒã¹ã®ã€ã³ããã¯ã¹äœæã«äœ¿çšãããåŸè ã¯äœçœ®ã®ã€ã³ããã¯ã¹äœæã«äœ¿çšãããŸãã
å®éã«ã¯ãããã¯ã2007ãŸãã¯2006-11-01ã®ãããªã·ãªãŒãºã©ãã«ãlocïŒïŒé¢æ°ã«æž¡ãããšãã§ãã22ãŸãã¯43ã®ãããªæŽæ°ãilocïŒïŒé¢æ°ã«æž¡ãããããšãæå³ããŸãã
# Inspect the first rows of November-December 2006 print(aapl.loc[pd.Timestamp('2006-11-01'):pd.Timestamp('2006-12-31')].head()) # Inspect the first rows of 2007 print(aapl.loc['2007'].head()) # Inspect November 2006 print(aapl.iloc[22:43]) # Inspect the 'Open' and 'Close' values at 2006-11-01 and 2006-12-01 print(aapl.iloc[[22,43], [0, 3]])
ããŒãã£ã·ã§ã³æé ã®çµæã泚ææ·±ãèŠããšãããŒã¿ã«ç¹å®ã®æ¥ãæ¬ èœããŠããããšãããããŸãã ãã¿ãŒã³ãããã«åæãããšãéåžž2æ¥ãŸãã¯3æ¥ã§ã¯ååã§ã¯ãããŸããã ãããã¯é±æ«ãšç¥æ¥ã§ããããã®éã¯çºæ¿ååŒã¯è¡ãããŸããã
ã€ã³ããã¯ã¹ä»ãã®ã»ãã«ãããŒã¿ã«ã€ããŠããã«åŠç¿ããæ¹æ³ãããã€ããããŸãã ããšãã°ã20è¡ã®ããŒã¿ã®ãµã³ãã«ãäœæããããããåãã©ãŒãããããŠãapplãéæ¥æ¬¡å€ããã³æ次å€ã«ãªãããã«ããããšãã§ããŸãã ãããè¡ãã«ã¯ãsampleïŒïŒããã³resampleïŒïŒé¢æ°ã䜿çšããŸãã
# Sample 20 rows sample = aapl.sample(20) # Print `sample` print(sample) # Resample to monthly level monthly_aapl = aapl.resample('M').mean() # Print `monthly_aapl` print(monthly_aapl)
ããŒã¿ã®èŠèŠåãšè²¡ååæã«é²ãåã«ãååŒæéã®å§å€ãšçµå€ã®å·®ã®èšç®ãéå§ã§ããŸãã ãã®ç®è¡æŒç®ã¯ãPandasã䜿çšããŠå®è¡ã§ããŸããapplããŒã¿ã®Openåã®å€ãCloseåããæžç®ããå¿ èŠããããŸãã ãŸãã¯ãèšãæãããšãaapl.Openããaapl.Closeãæžç®ããŸãã çµæã®çµæã¯ãdiffãšåŒã°ããaaplããŒã¿ãã¬ãŒã ã®æ°ããåã«æ ŒçŽãããdelé¢æ°ã䜿çšããŠåé€ã§ããŸãã
# Add a column `diff` to `aapl` aapl['diff'] = aapl.Open - aapl.Close # Delete the new `diff` column del aapl['diff']
çµæã®çµ¶å¯Ÿå€ã¯ã財åæŠç¥ã®éçºã«ãã§ã«æçšã§ããå¯èœæ§ããããŸãããéåžžãããšãã°ç¹å®ã®æ ªã®æé·çãäŸ¡æ Œã®äžèœãªã©ãããæ·±ãåæãå¿ èŠã§ãã
æç³»åããŒã¿ã®å¯èŠå
é¢æ°headïŒïŒãtailïŒïŒãããã³ã€ã³ããã¯ã¹ä»ãã䜿çšããããŒã¿åæã«å ããŠããããã®èŠèŠåãå¯èœã§ãã PandasãšMatplotlibãã£ãŒãäœæããŒã«ã®çµ±åã«ãããããã¯éåžžã«ç°¡åã«è¡ããŸãã plotïŒïŒé¢æ°ã䜿çšããŠãé¢é£ãããã©ã¡ãŒã¿ãŒãæž¡ãã ãã§ãã ããã«ãã°ãªãããã©ã¡ãŒã¿ãŒãè¿œå ãããšãçµæã®ã°ã©ããã°ãªããã«éããããŸãã
# Import Matplotlib's `pyplot` module as `plt` import matplotlib.pyplot as plt # Plot the closing prices for `aapl` aapl['Close'].plot(grid=True) # Show the plot plt.show()
ãã®ã³ãŒãã¯ã次ã®ãããªã°ã©ããæäŸããŸãã

ãã¥ãŒããªã¢ã«ã®æ¬¡ã®éšåã§ã¯ãPythonã䜿çšããæç³»åããŒã¿ã®è²¡ååæã«çŠç¹ãåœãŠãŸãã
ç¶ç¶ããã«ã¯... ..
ITI Capitalã®éèããã³æ ªåŒåžå Žã«é¢ãããã®ä»ã®è³æïŒ
- åæãšåžå Žã¬ãã¥ãŒ
- å ç©ãã€ã³ããã¯ã¹ãIPOïŒååŒæãå®éã«ã©ã®ããã«é 眮ãããŠããã®ãããªãããããå¿ èŠãªã®ã
- æ ªåŒåžå Žã®æ§é ãç解ããããã®ããã10æ¬
- å ç©ãã€ã³ããã¯ã¹ãIPOïŒååŒæãå®éã«ã©ã®ããã«é 眮ãããŠããã®ãããªãããããå¿ èŠãªã®ã
- ãã·ã¢ã®èšŒåžåžå Žã®ã€ã³ãã©ïŒçææè²ããã°ã©ã ïŒ
- æ¹æ³ïŒãããããšèšŒåžååŒã·ã¹ãã API