不是真正寻找转置(我不认为),但我想不出更好的描述符。
我有这个数据框:
ticker 2282 JP Equity 3401 JP Equity
field OP007 OP008 OP007 OP008
2017-02-01 0.5193 1.0732 0.647 1.8618
这是一个1值的时间序列,所以不是真正的时间序列。我想要这个:
OP007 OP008
2282 JP Equity 0.5193 1.0732
3401 JP Equity 0.647 1.8618
将1级列标题作为行索引,将2级列标题作为新列索引。有没有办法做到这一点?
答案 0 :(得分:1)
使用stack
df.stack('ticker')
或者
df.stack(0)
<强> 演示 强>
df = pd.DataFrame(
[[0.5193, 1.0732, 0.647, 1.8618]],
pd.to_datetime(['2017-02-01']),
pd.MultiIndex.from_product([
['2282 JP Equity', '3401 JP Equity'],
['OP007', 'OP008']
], names=['ticker', 'field'])
)
df
ticker 2282 JP Equity 3401 JP Equity
field OP007 OP008 OP007 OP008
2017-02-01 0.5193 1.0732 0.647 1.8618
然后
df.stack('ticker')
field OP007 OP008
ticker
2017-02-01 2282 JP Equity 0.5193 1.0732
3401 JP Equity 0.6470 1.8618