【Python】Pandasでcross joinをする方法
こんにちは。
今日は、pandasでcross joinをする方法について書きたいと思います*1。
やりたいこと
df_a, df_bの二つのデータフレームがあったとして、その二つのデータフレームをcross joinしたいなという気持ちになったとします。
ただ、Pandasにはこれをそのままでやる方法がありません。
やり方
以下のような感じで実現できます。
def cross_join(df_a, df_b, common_key=None): if common_key is not None: return pd.merge(df_a, df_b, on=common_key, how='outer') df_a['tmp'] = 1 df_b['tmp'] = 1 return pd.merge(df_a, df_b, how='outer') cross_join(df_a, df_b)
同じキーを用意してあげて、それをouterでjoinすることで実現できます。
まとめ
んー、なんか用意して欲しいなぁって思う笑。それでは。
*1:毎回調べちゃうので