St_Hakky’s blog

Data Science / Human Resources / Web Applicationについて書きます

【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:毎回調べちゃうので