title: Find names of top-n highest-value columns in each pandas dataframe row
body: <p>I have the following dataframe:</p>
  
  <pre><code>  id     p1 p2 p3 p4
    1      0  9  1  4
    2      0  2  3  4
    3      1  3 10  7
    4      1  5  3  1
    5      2  3  7 10
  </code></pre>
  
  <p>I need to reshape the data frame in a way that for each id it will have the top 3 columns with the highest values. The result would be like this:</p>
  
  <pre><code> id top1 top2 top3
    1  p2   p4   p3
    2  p4   p3   p2
    3  p3   p4   p2
    4  p2   p3   p4/p1
    5  p4   p3   p2
  </code></pre>
  
  <p>It shows the top 3 best sellers for every <code>user_id</code>. I have already done it using the <code>dplyr</code> package in R, but I am looking for the pandas equivalent.</p>