カテゴリ値(0または1)を持つ複数の列を持つPandas DataFrameを使用すると、同時にすべての列のvalue_countsを便利に取得できますか?私は便利なすべての列の値のカウントを取得するにはどうすればよいPandas DataFrameで複数の列の値を一度に取得する方法は?
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
をして取得:
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'))
私はこのようなデータフレームを取得することができます。たとえば
は、次のように私はデータフレームを生成すると仮定します次は便利ですか?
a b c d
0 6 3 2 6
1 4 7 8 4
私の現在のソリューションは、次のとおりです。
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)
しかしそこピボット、スタッキングのような、単純な方法であること、またはGROUPBYしなければなりませんか?
[以下この回答を](https://stackoverflow.com/a/47187144/3707607は) 'pd.crosstab'と異なるアプローチを提供します。また、 'value_counts'はトップレベルの関数で、現在選択されている解答を' df.apply(pd.value_counts) 'に簡約することができます –