<p>你要做的是旋转桌子。
以下方法导致时间和库存形成一个多指标</p>
<pre><code> df = pd.read_csv('prices.csv', header=None, names=['time', 'stock', 'type', 'prices'],
index_col=['time', 'stock', 'type'])
In [1062]:
df
Out[1062]:
prices
time stock type
time1 stockA bid 1.0
time2 stockA ask 1.1
time3 stockB ask 2.1
time4 stockB bid 2.0
time5 stockA bid 1.1
time6 stockA ask 1.2
time7 stockA high1.5
time8 stockA low 0.5
</code></pre>
<p>我认为数据帧应该是这样的。
那就做吧</p>
<pre><code>In [1064]:
df.unstack()
Out[1064]:
prices
type ask bid high low
time stock
time1 stockA NaN 1.0 NaN NaN
time2 stockA 1.1 NaN NaN NaN
time3 stockB 2.1 NaN NaN NaN
time4 stockB NaN 2.0 NaN NaN
time5 stockA NaN 1.1 NaN NaN
time6 stockA 1.2 NaN NaN NaN
time7 stockA NaN NaN 1.5 NaN
time8 stockA NaN NaN NaN 0.5
</code></pre>
<p>您可以使用<code>df.fillna</code>用您喜欢的任何东西填充nan。一般来说,将列值转换为列标题称为数据透视。<code>.unstack</code>透视多重索引的一个级别。您也可以检查<code>.pivot</code>。你能做到的</p>
<pre><code>df.columns = df.columns.droplevel(0)
</code></pre>
<p>去掉列中包含每列“prices”的外层</p>