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

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

Mary-Kate Olsen
リリース: 2024-12-11 17:59:15
オリジナル
1048 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート