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

- sort:Deprecated..
現在は 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.000000penguins2 = 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