Pythonで変数ごとにグループ化された別の変数の出現回数をカウントする方法


方法1: pandasを使用する方法

import pandas as pd
# データフレームを作成する
df = pd.DataFrame({'変数1': ['A', 'A', 'B', 'B', 'B', 'C'], '変数2': ['X', 'Y', 'X', 'Y', 'Z', 'Z']})
# 変数1ごとに変数2の出現回数をカウントする
count_df = df.groupby('変数1')['変数2'].value_counts().reset_index(name='出現回数')
print(count_df)

このコードでは、pandasのgroupby関数を使用して、変数1でグループ化し、変数2の出現回数をカウントしています。結果は新しいデータフレームcount_dfに保存されます。

方法2: collectionsモジュールを使用する方法

from collections import Counter
# データを作成する
data = [('A', 'X'), ('A', 'Y'), ('B', 'X'), ('B', 'Y'), ('B', 'Z'), ('C', 'Z')]
# 変数1ごとに変数2の出現回数をカウントする
count_dict = {}
for var1, var2 in data:
    if var1 not in count_dict:
        count_dict[var1] = Counter()
    count_dict[var1][var2] += 1
# 結果を表示する
for var1, counter in count_dict.items():
    for var2, count in counter.items():
        print(f'変数1: {var1}, 変数2: {var2}, 出現回数: {count}')

このコードでは、collectionsモジュールのCounterクラスを使用して、変数ごとに出現回数をカウントしています。結果は変数1と変数2の組み合わせごとに表示されます。