다음은 다섯 개 종목의 주가를 한 번에 가져오는 예다.
# 'amzn', 'ba', 'msft', 'aapl', 'goog' ticket
sp = [ 'amzn', 'ba', 'msft', 'aapl', 'goog' ]
# 2020년 4월의 각 종목 주가를 가져온다
# 다음 코드는 { } 사이에서 루프를 반복하므로
# 루프의 결과인 {키:값}과 같은 딕셔너리 데이터형을 받는다
price_data = { ticker : si.get_data( ticker, start_date = "04/01/2020", end_date = "04/30/2020" ) for ticker in sp }
# 앞의 코드는 딕셔너리 데이터형인데, 분석상의 편의를 위해
# 다음과 같이 reduce( ) 함수와 lambda 함수를 조합해
# 데이터프레임으로 변환한다
from functools import reduce
combined = reduce( lambda x,y: x.append(y), price_data.values( ) )
combined.head( )
결과
open high low close adjclose volume ticker 2020-04-01 1932.96 1944.95 1893.00 1907.69 1907.69 4121900 AMZN 2020-04-02 1901.64 1927.53 1890.00 1918.82 1918.82 4336000 AMZN 2020-04-03 1911.15 1926.32 1889.15 1906.58 1906.58 3609900 AMZN 2020-04-06 1936.00 1998.52 1930.02 1997.58 1997.58 5773200 AMZN 2020-04-07 2017.10 2035.71 1997.61 2011.59 2011.59 5114000 AMZN
combined.tail( )
결과
open high low close adjclose volume ticker 2020-04-23 1271.55 1293.31 1265.67 1276.31 1276.31 1566200 GOOG 2020-04-24 1261.17 1280.40 1249.44 1279.31 1279.31 1640400 GOOG 2020-04-27 1296.00 1296.15 1269.00 1275.88 1275.88 1600600 GOOG 2020-04-28 1287.93 1288.05 1232.19 1233.67 1233.67 2951300 GOOG 2020-04-29 1341.45 1359.98 1325.33 1341.47 1341.47 3793600 GOOG