pandas value_counts applied to each column

dataframe, pandas, python

Solution

For the dataframe,

df = pd.DataFrame(data=[[34, 'null', 'mark'], [22, 'null', 'mark'], [34, 'null', 'mark']], columns=['id', 'temp', 'name'], index=[1, 2, 3]) 

the following code

for c in df.columns:
    print "---- %s ---" % c
    print df[c].value_counts()

will produce the following result:

---- id ---
34    2
22    1
dtype: int64
---- temp ---
null    3
dtype: int64
---- name ---
mark    3
dtype: int64

Problem

I have a `dataframe` with numerous columns (≈30) from an external source (csv file) but several of them have no value or always the same. Thus, I would to see quickly the `value_counts` for each column, how can i do that? For example ``` Id, temp, name 1 34, null, mark 2 22, null, mark 3 34, null, mark ``` Would return me an object stating that - Id: 34 -> 2, 22 -> 1 - temp: null -> 3 - name: mark -> 3 So I would know that temp is irrelevant and name is not interesting (always the same)

Original source