1
我试图拆散一个数据帧在其上执行操作(在唯一的一次),然后将其叠到一起这样的:如何恢复在大熊猫未叠加数据帧
import pandas as pd
import numpy as np
from itertools import *
time = pd.date_range(pd.datetime(2007,1,1),pd.datetime(2007,1,2))
slot = map(lambda n:"s-"+str(n),reversed(range(2)))
obj = map(lambda n:"o-"+str(n),reversed(range(2)))
idx = pd.MultiIndex.from_tuples(list(product(slot, obj, time)), names=['Ananas','Bananas','time']) #list(.) needed to get a length, should this really be needed?
data = np.random.rand(len(idx),4)
df = pd.DataFrame(data=data,index=idx, columns=['a','b','c','d']) #why is idx.size==0?
print df.to_string()
print "====="
unstacked = df.unstack(level=[0,1])
print unstacked.to_string()
print "====="
stacked = unstacked.stack(level=[2,1])
print stacked.to_string()
的问题是,多指标是手术后逆转,有没有简单的方法可以做到这一点?也许我从一开始就滥用堆栈?
谢谢几乎以同样的多指标水平顺序,你必须添加'.sortlevel(0)'得到一个正确的多指标。 – SlimJim 2012-08-20 09:28:32
确实可能需要排序,我的重点是关卡的顺序。 – 2012-08-20 09:30:25