データ可視化手法の検討時に観測データで直接試す前にやっておきたい。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# 乱数を生成するためのシードを設定
np.random.seed(0)
# それぞれの群のサンプルサイズ
n = 50
# 中央値が異なる2群の乱数データを生成
group1 = np.random.normal(loc=0, scale=1, size=n)
group2 = np.random.normal(loc=2, scale=1, size=n)
numpy.ndarrayではなくpd.DataFrameの状態で変数に格納したい場合
# ndarrayからDataFrameへ(ただし縦持ちのデータ)
df = pd.DataFrame({
'Group': ['Group 1'] * n + ['Group 2'] * n,
'Values': np.concatenate([group1, group2])
})
# さらにそれを横持ちのデータにしたい場合
df['Index'] = df.groupby('Group').cumcount() # インデックスを設定
df_wide = df.pivot(index='Index', columns='Group', values='Values') # 変換
df_wide.reset_index(drop=True, inplace=True) # マルチインデックスの解除