tl;dr,使用:from pandas import *
df.stack()
一、二、二、三
让我们举一个例子说明如何做到这一点。
首先生成样本数据:from pandas import *
import pandas.util.testing as tm; tm.N = 3
import numpy as np
def unpivot(frame):
N, K = frame.shape
data = {'value' : frame.values.ravel('F'),
'variable' : np.asarray(frame.columns).repeat(N),
'date' : np.tile(np.asarray(frame.index), K)}
return DataFrame(data, columns=['date', 'variable', 'value'])
df = unpivot(tm.makeTimeDataFrame())
df2= df.pivot('date', 'variable')
我们将解开这张桌子:value
variable A B C D
date
2000-01-03 -0.425081 0.163899 -0.216486 -0.266285
2000-01-04 0.078073 0.581277 0.103257 -0.338083
2000-01-05 0.721696 -1.311509 -0.379956 0.642527
运行:df2= df.pivot('date', 'variable')
print df2
喂!现在我们得到了想要的桌子。value
date variable
2000-01-03 A -0.425081
B 0.163899
C -0.216486
D -0.266285
2000-01-04 A 0.078073
B 0.581277
C 0.103257
D -0.338083
2000-01-05 A 0.721696
B -1.311509
C -0.379956
D 0.642527