我在数据框中有库存数据,其列标题如AAPL,AAPL_ma,MSFT,MSFT_ma - 并希望以某种方式将数据放入带有items = stock符号的面板中(因此AAPL项目将包括AAPL和AAPL_ma)。
我是大熊猫的新手,我正在努力想出一个连贯的计划。我无法弄清楚我是否应该:(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'对象没有属性'形状'
答案 0 :(得分:1)
你最容易获得承诺的土地的方法是创建一个多索引字典,其中的键是(aapl,aapl)和(aapl,aapl_ma)等元组,然后在字典上执行pandas.Dataframe()。 http://pandas.pydata.org/pandas-docs/dev/advanced.html
如果你想做一个面板我会建议EdChums回答创建一个数据帧的dict,键是符号,然后你可以使用该dict创建一个带pandas.Panel()的面板。