title: Python Pandas - Sort Values by keeping a specific order
body: <p>I am trying to sort values by keeping the index in a specific order.</p>
  
  <pre><code>from random import randint
  import pandas as pd
  days = ["Tuesday", "Thursday", "Monday", "Wednesday"]
  a = pd.DataFrame({"Value": [randint(0, 9) for i in range(len(days)*5)],
                    "Year": [y for i in range(len(days)) for y in range(2014,2019)]}, 
                    index=[day for day in days for i in range(5)])
  myorder = ["Monday", "Tuesday", "Wednesday", "Thursday"]
  a.index = pd.CategoricalIndex(a.index, categories=myorder, ordered=True)
  a = a.sort_index()
  </code></pre>
  
  <p>By applying <code>a.sort_index()</code> I get my specific order. However, values of <code>Year</code> are random. If we naively <code>a.sort_values(["Year"])</code>, it modifies again the <code>index</code> order. How can I sort the <code>Year</code> values by keeping my initial <code>index</code> order ?</p>