Python pandasデータカウント関数value_counts

2393 ワード

value_countsの紹介
value_countsは、テーブルの列に何個の異なる値があるかを表示するショートカットです.Excelのcount関数のように、各異なる値がその列にある数を計算します.
これはpandasの下にある最上位の関数で、Series、DataFrameの下にも作用します
pd.value_counts(
    values,
    sort=True,        #    ,      
    ascending=False,     #      
    normalize=False,     #   、        
    bins=None,    #         ,     ,         
    dropna=True,   #    nan,    
)

一般的な使い方:
import pandas as pd

pd.value_counts()
df.value_counts()
df['  '].value_counts()

シミュレーションデータの作成
>>> import pandas as pd
>>> data=pd.DataFrame({'  1':[1,2,3,4,5,6,5,3,2,4,5,4,4,4,6],
                   '  2':['A','B','B','A','A','A','B','B','B','C','C','C','C','B','B']})
>>> data
      1   2
0     1   A
1     2   B
2     3   B
3     4   A
4     5   A
5     6   A
6     5   B
7     3   B
8     2   B
9     4   C
10    5   C
11    4   C
12    4   C
13    4   B
14    6   B

>>> data.dtypes
  1     int64
  2    object
dtype: object

Seriesの場合:
pandasのvalue_counts()関数はSeriesの各値をカウントしてソートできます.デフォルトは降順です.
>>> data['  2'].value_counts()
B    7
C    4
A    4
Name:   2, dtype: int64

>>> data['  1'].value_counts()
4    5
5    3
6    2
3    2
2    2
1    1
Name:   1, dtype: int64

分類変数の統計も連続数値変数の統計も可能であることがわかる.
結果を昇順に並べ替える場合は、ascending=Trueを追加して変更できます.
>>> data['  2'].value_counts(ascending=True)
A    4
C    4
B    7
Name:   2, dtype: int64

統計の個数を見たくなくて、占比を見たいなら、normalize=Trueを設定すればいいです.結果は小数形です.
>>> data['  2'].value_counts(normalize=True)
B    0.466667
C    0.266667
A    0.266667
Name:   2, dtype: float64

DataFrameの場合
applyで各カラムの変数を統計できます
>>> data.apply(pd.value_counts)
     1    2
1  1.0  NaN
2  2.0  NaN
3  2.0  NaN
4  5.0  NaN
5  3.0  NaN
6  2.0  NaN
A  NaN  4.0
B  NaN  7.0
C  NaN  4.0

pandasで呼び出す
>>> pd.value_counts(data['  2'])
B    7
C    4
A    4
Name:   2, dtype: int64

以上は自分の実践の中で出会ったいくつかの点で、みんなが参考にして勉強するために分かち合って、DataShareの公衆番号に注目することを歓迎します