代码之家  ›  专栏  ›  技术社区  ›  Slartibartfast

来自pandas_datareader的连接数据

  •  1
  • Slartibartfast  · 技术社区  · 6 年前

    我试图创建一个数据帧,其中的列来自两个不同的数据帧。

    import pandas as pd
    import numpy as np
    from statsmodels import api as sm
    import pandas_datareader.data as web
    import datetime
    start = datetime.datetime(2016,12,2)
    end = datetime.datetime.today()
    df = web.get_data_yahoo(['F'], start, end)
    df1 = web.get_data_yahoo(['^GSPC'], start, end)
    df3 = pd.concat([df['Adj Close'], df1['Adj Close']])
    

    带着这个我想得到 df3 包含[Adj Close]数据的两列。我得到的是:

        F   ^GSPC
    Date        
    2016-12-01  10.297861   NaN
    2016-12-02  10.140451   NaN
    2016-12-05  10.306145   NaN
    2016-12-06  10.405562   NaN
    2016-12-07  10.819797   NaN
    ... ... ...
    2019-11-22  NaN 3110.290039
    2019-11-25  NaN 3133.639893
    2019-11-26  NaN 3140.520020
    2019-11-27  NaN 3153.629883
    2019-11-29  NaN 3140.979980
    1508 rows × 2 columns
    

    我需要做些什么来摆脱南人的价值观,为什么会这样?

    1 回复  |  直到 6 年前
        1
  •  1
  •   jezrael    6 年前

    添加参数 axis=1 柱状混凝土 concat :

    df3 = pd.concat([df['Adj Close'], df1['Adj Close']], axis=1)
    

    但我认为你的解决方案应该简化为 get_data_yahoo :

    df3 = web.get_data_yahoo(['F', '^GSPC'], start, end)