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

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

Mary-Kate Olsen
リリース: 2024-12-07 17:32:13
オリジナル
470 人が閲覧しました

How to Efficiently Calculate the Cartesian Product of DataFrames in Pandas?

Pandas のデカルト積

Pandas で 2 つ以上のデータフレームを操作する場合、デカルト積を取得する必要がある場合があり、その結果、次のような新しいデータフレームが生成されます。入力データフレームの行のすべての組み合わせ。

Pandas >= 1.2

Pandas の最近のバージョンでは、マージ関数を利用して、how='cross' 引数を使用してこの操作を実行できます。このアプローチは簡潔かつ効率的です。

import pandas as pd

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

df_cartesian = df1.merge(df2, how='cross')
ログイン後にコピー

Pandas < 1.2

Pandas の以前のバージョンでは、少し異なるテクニックが必要です。これには、両方のデータフレームの行ごとに繰り返されるキー列の作成が含まれます。このキー列が追加されると、マージを使用してデカルト積を実行できます。

import pandas as pd
from pandas import merge

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

merge(df1, df2,on='key')[['col1', 'col2', 'col3']]
ログイン後にコピー

このアプローチはより複雑ですが、古いバージョンの Pandas では効果的に機能します。

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

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