freq_table

badge of tested backend

1変数または多変数の度数分布表

概要

R言語のDescTools::Freq()をオマージュした、度数分布表を計算する関数です。度数 freq と相対度数 perc に加えて、それぞれの累積値を計算します。

freq_table(
    data: IntoFrameT,
    subset: Union[str, Sequence[str]],
    sort_by: Literal['frequency', 'values'] = 'frequency',
    descending: bool = False,
    dropna: bool = False,
    to_native: bool = True,
    *,
    sort: Optional[bool] = None
)

引数 Argument

  • dataIntoFrameT(必須)
    入力データ。narwhals が受け入れ可能な DataFrame 互換オブジェクト
    (例:pandas.DataFramepolars.DataFramepyarrow.Table)を指定できます。
  • subsetstr or list of str
     集計に使用するデータフレームの列名(必須)。
  • sort_bystr
     sort_by = 'frequency' なら度数分布表を頻度に応じてソートし、sort_by = 'values' なら subset で指定した列の値に応じてソートします。
  • descendingbool
     ソートの方式。True なら降順でソートし、False(初期設定)なら昇順でソートします。
  • dropnabool
     欠測値(NaN, None など)を集計から除外するかどうかを表すブール値。初期設定は False です。
  • to_native: bool
    True の場合、入力と同じ型のデータフレーム(e.g. pandas / polars / pyarrow)を返します。
    False の場合、narwhals.DataFrame を返します。デフォルトは True で、to_native = False は、主にライブラリ内部での利用や、バックエンドに依存しない後続処理を行う場合を想定したオプションです。

badge of lifecycle deprecated
- sortDeprecated..
 現在は sort_by の使用を推奨しています。この引数は後方互換性のために保持されおり、指定された場合は FutureWarningが発生します。デフォルトは None です。

返り値 Value

freq_table()関数は、次の値をもつ DataFrame を出力します。

  • freq: 度数
  • perc: 相対度数
  • cumfreq: 累積度数
  • cumperc: 累積相対度数

使用例 Example

import py4stats as py4st
import pandas as pd
from palmerpenguins import load_penguins
penguins = load_penguins() # サンプルデータの読み込

print(py4st.freq_table(penguins, 'species'))
#>      species  freq      perc  cumfreq   cumperc
#> 0  Chinstrap    68  0.197674       68  0.197674
#> 1     Gentoo   124  0.360465      192  0.558140
#> 2     Adelie   152  0.441860      344  1.000000

print(py4st.freq_table(penguins, ['island', 'species']))
#>       island    species  freq      perc  cumfreq   cumperc
#> 0     Biscoe     Adelie    44  0.127907       44  0.127907
#> 1  Torgersen     Adelie    52  0.151163       96  0.279070
#> 2      Dream     Adelie    56  0.162791      152  0.441860
#> 3      Dream  Chinstrap    68  0.197674      220  0.639535
#> 4     Biscoe     Gentoo   124  0.360465      344  1.000000
penguins2 = penguins.assign(bill_length_mm2 = pd.cut(penguins['bill_length_mm'], 6))

print(
    py4st.freq_table(
        penguins2, ['species', 'bill_length_mm2'], 
        sort_by = 'values',  dropna = True
        )
    )
#>       species   bill_length_mm2  freq      perc  cumfreq   cumperc
#> 0      Adelie  (32.072, 36.683]    36  0.105263       36  0.105263
#> 1      Adelie  (36.683, 41.267]    89  0.260234      125  0.365497
#> 2      Adelie   (41.267, 45.85]    25  0.073099      150  0.438596
#> 3      Adelie   (45.85, 50.433]     1  0.002924      151  0.441520
#> 4   Chinstrap  (36.683, 41.267]     1  0.002924      152  0.444444
#> 5   Chinstrap   (41.267, 45.85]    12  0.035088      164  0.479532
#> 6   Chinstrap   (45.85, 50.433]    29  0.084795      193  0.564327
#> 7   Chinstrap  (50.433, 55.017]    24  0.070175      217  0.634503
#> 8   Chinstrap    (55.017, 59.6]     2  0.005848      219  0.640351
#> 9      Gentoo  (36.683, 41.267]     1  0.002924      220  0.643275
#> 10     Gentoo   (41.267, 45.85]    39  0.114035      259  0.757310
#> 11     Gentoo   (45.85, 50.433]    65  0.190058      324  0.947368
#> 12     Gentoo  (50.433, 55.017]    15  0.043860      339  0.991228
#> 13     Gentoo    (55.017, 59.6]     3  0.008772      342  1.000000

Return to Function reference.