ホームページ >バックエンド開発 >Python チュートリアル >Pandas DataFrame のデカルト積を効率的に作成するにはどうすればよいですか?

Pandas DataFrame のデカルト積を効率的に作成するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-11 17:59:15978ブラウズ

How to Efficiently Create a Cartesian Product of Pandas DataFrames?

Pandas のデカルト積: ベスト プラクティスとソリューション

Pandas データフレームを操作する場合、多くの場合、2 つ以上のデータフレームのデカルト積を作成する必要があります。これは、複数のソースからのデータを結合したり、異なる変数間の関係を調査したりする場合に便利な操作です。

クロス マージ メソッド

Pandas の最近のバージョン (>= 1.2) では、クロスmerge メソッドは、2 つのデータフレームのデカルト積を計算する便利な方法を提供します。このメソッドを使用するには、how='cross' 引数を指定してマージ関数を呼び出すだけです。

import pandas as pd

df1 = pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]})
df2 = pd.DataFrame({'col3': [5, 6]})

df_cartesian = pd.merge(df1, df2, how='cross')

結果のデータフレーム df_cartesian には、df1 と df2 の行のすべての組み合わせが含まれ、デカルト積が生成されます。 .

マージでの繰り返しキーの使用

以前のバージョンの Pandas の場合1.2 では、デカルト積を作成するには少し異なるアプローチを使用する必要がありました。このアプローチでは、データフレームの 1 つで繰り返しキーを使用し、それらのキーをマージします。

df1 = pd.DataFrame({'key': [1, 1], 'col1': [1, 2], 'col2': [3, 4]})
df2 = pd.DataFrame({'key': [1, 1], 'col3': [5, 6]})

df_cartesian = pd.merge(df1, df2, on='key')[['col1', 'col2', 'col3']]

両方のデータフレームの各行で繰り返されるキーを作成することで、マージによってデカルト積を効果的に実行できます。

結論

Pandas >= 1.2 またはそれ以前を使用しているかどうかバージョンでは、上記のメソッドは、2 つ以上のデータフレームのデカルト積を作成する効率的な方法を提供します。使用している Pandas の特定のバージョンに応じて、一方のアプローチがもう一方のアプローチよりも便利または効率的になる場合があります。

以上がPandas DataFrame のデカルト積を効率的に作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。