クロス集計とは、単純集計に集計を掛け合わせ、集計内容を分析する。
母集団から要素ごと部分部分で集計するので、標本数が減るためあまりにも少なくなって有効な統計量じゃなくなる可能性があるので注意。
上記を踏まえてpandasのクロス集計メソッド。
foo, bar, dull, shiny, one, two = "foo", "bar", "dull", "shiny", "one", "two"
a = np.array([foo, foo, bar, bar, foo, foo], dtype=object)
b = np.array([one, one, two, one, two, one], dtype=object)
c = np.array([dull, dull, shiny, dull, dull, shiny], dtype=object)
pd.crosstab(a, [b, c], rownames=["a"], colnames=["b", "c"])
df = pd.DataFrame(
{"A": [1, 2, 2, 2, 2], "B": [3, 3, 4, 4, 4], "C": [1, 1, np.nan, 1, 1]}
)
df
pd.crosstab(df["A"], df["B"])
2個目がわかりやすい。
AとB属性それぞれを満たすカウントが取られている。