Comment obtenir des décomptes de valeur pour plusieurs colonnes à la fois dans Pandas DataFrame?

Donné une Pandas DataFrame qui a plusieurs colonnes avec catégorique valeurs (0 ou 1), est-il possible de facilement obtenir le value_counts pour chaque colonne en même temps?

Par exemple, supposons que je générer un DataFrame comme suit:

import numpy as np
import pandas as pd
np.random.seed(0)
df = pd.DataFrame(np.random.randint(0, 2, (10, 4)), columns=list('abcd'))

Je peux obtenir un DataFrame comme ceci:

   a  b  c  d
0  0  1  1  0
1  1  1  1  1
2  1  1  1  0
3  0  1  0  0
4  0  0  0  1
5  0  1  1  0
6  0  1  1  1
7  1  0  1  0
8  1  0  1  1
9  0  1  1  0

Comment puis-je facilement obtenir la valeur des chiffres pour chaque colonne et obtenir de la commodément?

   a  b  c  d
0  6  3  2  6
1  4  7  8  4

Ma solution actuelle est:

pieces = []
for col in df.columns:
    tmp_series = df[col].value_counts()
    tmp_series.name = col
    pieces.append(tmp_series)
df_value_counts = pd.concat(pieces, axis=1)

Mais il doit y avoir un moyen plus simple, comme d'empilage, de pivot, ou groupby?

source d'informationauteur Xin