pandasのクロス集計を実行する

pandasのクロス集計を実行します。

# 架空データの作成

import random
import datetime
import pandas as pd

# 架空の行動履歴作成
def make_probe(_list, s, e):
    for _id in range(s, e):
        # 立ち寄りスポット数
        spot_num = random.randint(1, 5)
        for i in range(spot_num):
            spot1 = random.randint(1, 5)
            spot2 = random.randint(1, 5)
            _list.append([_id+1, f'spot_{spot1}', f'spot_{spot2}'])
    return _list

# 行動履歴作成
probe_list = []
probe_list = make_probe(probe_list, 0, 400)

# データフレーム化
df = pd.DataFrame(probe_list, columns=['id', 'o_spot', 'd_spot'])
df.head()
id o_spot d_spot
0 1 spot_5 spot_2
1 1 spot_3 spot_3
2 1 spot_3 spot_2
3 1 spot_3 spot_1
4 2 spot_5 spot_1

# pandasのクロス集計

# クロス集計
df_crosstab = pd.crosstab(df['o_spot'], df['d_spot'])
df_crosstab
o_spot/d_spot spot_1 spot_2 spot_3 spot_4 spot_5
spot_1 53 54 53 44 40
spot_2 54 48 40 44 55
spot_3 37 38 57 48 56
spot_4 47 42 42 62 40
spot_5 53 50 64 44 45

# まとめ

pandasのクロス集計を実行しました。

# 参考サイト

pandasでdbfを読み込む

pandasでdbfを読み込む

pandasでdbfを読み込みを実装します.

pandasの重複削除する

pandasの重複削除する

Pandasの重複削除します。