def unpivot(frame):
"""
渡されたDFのIndexとColumnsを値とともに列方向に並べる。
"""
N, K = frame.shape
data = {
"value": frame.to_numpy().ravel("F"),
"variable": np.asarray(frame.columns).repeat(N),
"date": np.tile(np.asarray(frame.index), K),
}
return pd.DataFrame(data, columns=["date", "variable", "value"])
df = tm.makeTimeDataFrame(3)
df = unpivot(df)
df
pivoted = df.pivot(index="date", columns="variable", values="value") #上記定義関数の逆操作
pivoted