我有这样一本三级词典:
data={'2016-11-28': {'area1': {'am': -0.007, 'pm': 0.008}, 'area2': {'am': 0.0, 'pm': 0.0}, 'area3': {'am': -0.01, 'pm': -0.001}},'2016-11-29':{'area1': {'am': -0.007, 'pm': 0.008}, 'area2': {'am': 0.0, 'pm': 0.0}, 'area3': {'am': -0.01, 'pm': -0.001}}}
我想把它转换成数据帧,我试着:
tickers=data['2016-11-28'].keys()
iterables=[tickers,['am','pm']]
index=pd.MultiIndex.from_product(iterables, names=['ticker', 'time'])
frame=pd.DataFrame(data,index=index)
但我有
2016-11-28 2016-11-29
ticker time
area1 am NaN NaN
pm NaN NaN
area3 am NaN NaN
pm NaN NaN
area2 am NaN NaN
pm NaN NaN
数据框中没有值,只有列名和索引名。我的代码怎么了?有人能帮忙吗?非常感谢!你知道吗
下面是我自己的解决方案:三重for循环强制字典符合层次索引的规则,即
{'col1':{('row1_level0', 'row1_level1'):value}}
使用时会像这样
下面是实现
这就是实际字典
d
的样子:采用链接到@acushner的答案。你知道吗
相关问题 更多 >
编程相关推荐