Python pandas - 尝试将 df 的字典放入面板(或将 df 项目循环到面板中)

Python pandas - trying to a dict of df's into a panel (or loop the df items into a panel)

我在数据框中有股票数据,列标题如 AAPL、AAPL_ma、MSFT、MSFT_ma -- 并且想以某种方式将数据放入带有 items = stock symbols (所以 AAPL 项目将包括 AAPL 和 AAPL_ma)。

我是 pandas 的新手,正在努力想出一个连贯的计划。我不知道我是否应该:(1) 使用 MultiIndex 功能,(2) 遍历列表以将数据写入名为股票代码的新 df,或 (3) 按符号拆分现有数据帧(例如,'AAPL' 在 'AAPL_ma').

任何方向将不胜感激。提前致谢!

更新:

在 EdChum 的建议下,我使用以下内容以字符串形式为我的 df 创建列标题的字典。不确定这是否是您的意思 - 正在进行中。

y = [df['Date']]
dict_stocks = {}
# create dict for multiindexing
for stock in list_stocks:
    i=0      
    x=[df[stock]]
    for heading in list_headings:
        data_series = df[stock + list_headings[i]]
        i = i + 1
        x.append(data_series)
    dict_stocks[stock] = y + x

上面生成了 df 的字典,尽管坐标轴不是我所期望的。但是,我没有运气:

my_panel = pd.Panel(df)
my_panel = pd.Panel.from_dict(dict_stocks)

产生错误:

--PandasError: 面板构造函数未正确调用!

--AttributeError: 'list' object 没有属性 'shape'

通往应许之地的最简单方法是创建一个多索引字典,其中的键是元组,例如 (aapl, aapl) 和 (aapl,aapl_ma),然后执行 pandas.Dataframe( ) 字典上。 http://pandas.pydata.org/pandas-docs/dev/advanced.html

如果你想做一个面板,我建议使用 EdChums 的答案,即创建一个数据框的字典,键是符号,然后你可以使用该字典创建一个带有 pandas.Panel() 的面板.