for문 질문드립니다.(2번째)

조회수 618회
    import pandas as pd
    import pandas_datareader.data as web
    from pandas import Series, DataFrame
    import datetime
    import matplotlib.pylab as plt
    import numpy
    import seaborn as sns

    stock = {'msft' : 'MSFT','tencent' : '0700.HK'}
    start = datetime.datetime(2017, 1, 1)
    end = datetime.datetime(2020, 1, 27)

    for name, code in stock.items():

    foo = web.DataReader(code, 'yahoo', start, end)
    bar = name + '_close'
    foo.rename(columns = {'Adj Close': bar}, inplace = True)
    stock_price = pd.concat(foo[bar], axis = 1)

----아래오류

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-104-3bd2e868540e> in <module>
      8     bar = name + '_close'
      9     foo.rename(columns = {'Adj Close': bar}, inplace = True)
---> 10     stock_price = pd.concat(foo[bar], axis = 1)

C:\conda\lib\site-packages\pandas\core\reshape\concat.py in concat(objs, axis, join, join_axes, ignore_index, keys, levels, names, verify_integrity, sort, copy)
    253         verify_integrity=verify_integrity,
    254         copy=copy,
--> 255         sort=sort,
    256     )
    257 

C:\conda\lib\site-packages\pandas\core\reshape\concat.py in __init__(self, objs, axis, join, join_axes, keys, levels, names, ignore_index, verify_integrity, copy, sort)
    282                 "first argument must be an iterable of pandas "
    283                 "objects, you passed an object of type "
--> 284                 '"{name}"'.format(name=type(objs).__name__)
    285             )
    286 

TypeError: first argument must be an iterable of pandas objects, you passed an object of type "Series"
----------------------

해결방법이 무었일까요?

  • 목적이 무엇인가요? 정영훈 2020.1.31 08:51

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    회사별로 종가 정보를 얻고 싶다인가요?

    import pandas as pd
    import pandas_datareader.data as web
    from pandas import Series, DataFrame
    import datetime
    import matplotlib.pylab as plt
    import numpy
    import seaborn as sns
    
    stock = {'msft' : 'MSFT','tencent' : '0700.HK'}
    start = datetime.datetime(2017, 1, 1)
    end = datetime.datetime(2020, 1, 27)
    
    def get_stock_company(name, code):
        foo = web.DataReader(code, 'yahoo', start, end)
        bar = f'{name}_close'
        foo.rename(columns = {'Adj Close': bar}, inplace = True)
        return foo[bar]
    
    stock_price = pd.concat([get_stock_company(name, code) for name, code in stock.items()], axis=1)
    
    

    오류발생

    • 경로가 변경될 수도 있고...원인이야 다양하겠지요. 정영훈 2021.8.4 13:44

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)