title: Building Pandas tables of where and for what values maxima are found
body: <p>I have <code>pandas</code> data with the structure reported by <code>info()</code></p>
  
  <pre><code>&lt;class 'pandas.core.frame.DataFrame'&gt;
  Int64Index: 7058 entries, 0 to 7057
  Data columns (total 16 columns):
  ID              7058 non-null int64
  Description     7058 non-null object
  Calories        7057 non-null float64
  Protein         7057 non-null float64
  TotalFat        7057 non-null float64
  Carbohydrate    7057 non-null float64
  Sodium          6974 non-null float64
  SaturatedFat    6757 non-null float64
  Cholesterol     6770 non-null float64
  Sugar           5148 non-null float64
  Calcium         6922 non-null float64
  Iron            6935 non-null float64
  Potassium       6649 non-null float64
  VitaminC        6726 non-null float64
  VitaminE        4338 non-null float64
  VitaminD        4224 non-null float64
  dtypes: float64(14), int64(1), object(1)
  </code></pre>
  
  <p>and I would like to produce a table of the Descriptions and values corresponding to each of the maximum values for the numeric columns along the lines of</p>
  
  <pre><code>Description       Value     Category
  SALT, TABLE       38758.00  Sodium
  FAT,BEEF TALLOW   100.00    TotalFat
  FRUCTOSE,DRY,PDR  100.00    Carbohydrate
  ...
  </code></pre>
  
  <p>I can get a bits and pieces of this with things like</p>
  
  <pre><code>&gt;&gt;&gt; usda.Description[usda[['Protein','TotalFat','Sodium','Carbohydrate']].idxmax()]
  
  4660    SOY PROT ISOLATE,K TYPE,CRUDE PROT BASIS
  288                              FAT,BEEF TALLOW
  264                                   SALT,TABLE
  6959        SWEETENERS,TABLETOP,FRUCTOSE,DRY,PDR
  Name: Description, dtype: object
  </code></pre>
  
  <p>and</p>
  
  <pre><code>&gt;&gt;&gt; usda[['Protein','TotalFat','Sodium','Carbohydrate']].max()
  
  Protein            88.32
  TotalFat          100.00
  Sodium          38758.00
  Carbohydrate      100.00
  dtype: float64
  </code></pre>
  
  <p>but that's about as far as I can mange.</p>
  
  <p>Is there a compact way to get find the maximum value for each numeric column in my dataset and produce a table with that value, the corresponding 'Description' and the name of the column for which the maximum was found?</p>