擅长:python、mysql、java
<p>我知道这个回复已经很晚了,但是如果不使用字典/映射,对这两种情况给出一个简单的解决方案,就像我在下面发布的一样。</p>
<p>将“day”设置为索引使您能够使用.loc按特定顺序选择数据</p>
<p>1)对于两个单独的地块</p>
<pre><code>df=pd.DataFrame({'group':['a','a','a','a','a','a','a','b','b','b','b','b','b','b'],
'day':['Mon','Tues','Fri','Thurs','Sat','Sun','Weds','Fri','Sun','Thurs','Sat','Weds','Mon','Tues'],
'amount':[1,2,4,2,1,1,2,4,5,3,4,2,1,3]})
order = ['Mon', 'Tues', 'Weds','Thurs','Fri','Sat','Sun']`
df.set_index('day').loc[order].groupby('group').plot(kind='bar')
</code></pre>
<p>2)对于带有闪避图的轴示例:</p>
<pre><code>order = ['Mon', 'Tues', 'Weds','Thurs','Fri','Sat','Sun']
df.pivot('day','group','amount').loc[order].plot(kind='bar')
</code></pre>
<p>请注意,pivot导致day已经在索引中,因此您可以再次使用此处的.loc。</p>
<p>编辑:在这些解决方案中使用.loc而不是.ix是最佳实践,.ix将被弃用,当列名和索引是数字时,可能会产生奇怪的结果。</p>