擅长:python、mysql、java
<p>一个选项是<code>melt</code>、<code>set_index</code>和<code>unstack</code>:</p>
<pre><code>u = df.melt(['ticker', 'source', 'timestamp'])
(u.set_index(u.columns.difference({'value'}).tolist())['value']
.unstack([1, 0, -1])
.sort_index(axis=1))
ticker A B
source LSE LSE
variable PX_CLOSE PX_LAST PX_OPEN PX_CLOSE PX_LAST PX_OPEN
timestamp
20180101 3 1 2 9 7 8
20180102 6 4 5 12 10 11
</code></pre>
<hr/>
<p>或<code>melt</code>,和<code>pivot_table</code>:</p>
^{pr2}$