title: How can I reformat value_counts() analysis in Pandas for large number of columns
body: <p>I have dataset that consist of hundreds of column, and thousands of row</p>
  
  <pre><code>In [119]:
  df.columns
  Out[119]:
  Index(['column 1', 'column2',
         ...
         'column 100'],
        dtype='object', name='var_name')
  </code></pre>
  
  <p>Usually I did <code>value_counts()</code> for every single column to see the distribution. </p>
  
  <pre><code>In [121]:
  a = df['column1'].value_counts()
  In [122]:
  a
  Out[122]:
  1     77494
  2      5389
  0      2016
  3       878
  Name: column 1, dtype: int64
  </code></pre>
  
  <p>But for this dataframe, if I did this for every columns, this will make my notebook very messy, how to automate this? Is there any function that help?</p>
  
  <p>If you have other information, all my data is <code>int64</code>, but I hope the best answer can give solution that works in every cases. I want to make the solution answer in pandas dataframe.</p>
  
  <p>Based on @MaxU suggestion, this is my version of simplified dataframe</p>
  
  <pre><code>df
  
  id  column1  column2 column3
  1         3        1       7
  2         3        2       8
  3         2        3       7
  4         2        1       8
  5         1        2       7
  </code></pre>
  
  <p>and my expected output is:</p>
  
  <pre><code>column 1   count
  1          1
  2          2
  3          2
  column 2   count
  1          2
  2          2
  3          1
  column 3   count
  7          3
  8          2
  3          1
  </code></pre>