2017-08-31 93 views
1

我有这样创造了一个多索引大熊猫数据帧:使用列表索引一个多索引的数据帧

m_index = ['time_remaining', 'inventory'] 
for i in indicators: 
    m_index.append(i.name) 
cols = [] 
for col in m_index: 
    cols.append(col) 
cols.append('action') 
cols.append('cost') 

optimal_actions = pd.DataFrame(columns=cols) 
optimal_actions.set_index(m_index, inplace=True) 

我那么有索引值的列表:

state_variables = [indicator.value for indicator in indicators] 
state = [time_remaining, i*trade_size]  
state.extend(state_variables) 

而且我试图通过值列表索引的列设置为一个值:

state = [300, 1, 1.0] 
optimal_actions.loc[state] = [-1, -0.2] 

这是给我一个讨厌的错误:

ValueError: zero-size array to reduction operation maximum which has no identity 

任何帮助将不胜感激!

+0

你能提供样本数据吗?请参阅:[MCVE](https://stackoverflow.com/help/mcve) –

+0

我相信现在有足够的数据来解决问题 –

回答

1

如果有人需要这个,我最终通过索引多元索引而不是列表来解决它。所以修改上面的代码将是:

state = [300, 1, 1.0] 
optimal_actions.loc[tuple(state)] = [-1, -0.2]