转置时最左边的列无法识别 - 雅虎财经 pandas

Left-most column not recognised when transposed - Yahoo finance pandas

我对编码还很陌生,但我真的很喜欢从 Yahoo Finance 中提取数据。到目前为止,我已经想出代码来降低 select 代码的收盘价,并计算每月的百分比变化 - 将其显示为具有 2 列的转置 table。在数据框中返回数据时,我希望能够使用 .columns 命名两列,但它似乎根本无法识别左侧的列(带有代码的列)。当我尝试将超过 1 个项目传递给 .column 时,它会提示我只有 1 列。有谁知道为什么会这样,以及我如何操作数据以识别左侧列?

    symbols_list = ["AAPL", "TSLA"]
    d = {}
    for x in symbols_list:
        try:
          d[x] = web.DataReader(x, "yahoo", '2015-12-31')
        except:
          print "Can't find ", x
    ticker = pd.Panel(d)
    df1 = ticker.minor_xs('Adj Close')
    daily = df1.resample('B', how=lambda x: x)

    monthly_change = daily.pct_change(periods = 24)

    past_month_change = monthly_change.tail(1)

    transposed = past_month_change.transpose()

    transposed.columns = ["Monthly % Change"] #This works, but only names the right column, not the left. 

执行您的代码后,我得到以下结果:

In [317]: transposed.columns
Out[317]: DatetimeIndex(['2016-06-03'], dtype='datetime64[ns]', name='Date', freq='B')

In [318]: transposed.info()
<class 'pandas.core.frame.DataFrame'>
Index: 2 entries, AAPL to TSLA
Data columns (total 1 columns):
2016-06-03 00:00:00    2 non-null object
dtypes: object(1)
memory usage: 32.0+ bytes

现在您可以重置索引并重命名列:

In [320]: transposed = transposed.reset_index()

In [321]: transposed.columns = ['code', 'Monthly % Change']

In [322]: transposed
Out[322]:
   code Monthly % Change
0  AAPL        0.0520737
1  TSLA       -0.0943342