回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>有没有一种方法可以根据我的个人喜好在Pandas数据框的columns索引中对特定级别进行重新排序(例如,通过一个有序的列表)?在</p>
<pre><code>In [130]: frame = pd.DataFrame({
...: ('TWO','thing1'):[1,2,3,4],
...: ('TWO','thing4'):[1,2,3,4],
...: ('DARK','thing1'):[0.1,0.2,1,2],
...: ('ANTS','thing3'):['a','e','i','o'],
...: ('ANTS','thing1'):['a','e','i','o']})
In [131]: frame
Out[131]:
ANTS DARK TWO
thing1 thing3 thing1 thing1 thing4
0 a a 0.1 1 1
1 e e 0.2 2 2
2 i i 1.0 3 3
3 o o 2.0 4 4
</code></pre>
<p>然后,我的列表基于单独生成的列表。需要注意的是,我不知道<code>level 0</code>或{<cd2>}索引标签-它们是变量。在</p>
^{pr2}$
<p>如果我尝试在<code>frame = frame[sort_list]</code>或<code>.reindex(columns=sort_list)</code>的上下文中传递这个列表,那么它抛出<code>Expected tuple, got str</code>,原因很明显。<a href="https://stackoverflow.com/questions/41968732/set-order-of-columns-in-pandas-dataframe">Here</a>是在单级索引上工作的解决方案。在</p>
<p>我只想在顶层进行排序,而将第二层保持原样。最后的数据帧看起来像这样。。。在</p>
<pre><code> DARK ANTS TWO
thing1 thing1 thing3 thing1 thing4
0.1 a a 1 1
0.2 e e 2 2
1.0 i i 3 3
2.0 o o 4 4
</code></pre>