Maison > développement back-end > Tutoriel Python > Comment calculer efficacement le produit cartésien des DataFrames dans Pandas ?

Comment calculer efficacement le produit cartésien des DataFrames dans Pandas ?

Mary-Kate Olsen
Libérer: 2024-12-07 17:32:13
original
470 Les gens l'ont consulté

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

Produit cartésien dans Pandas

Lorsque vous travaillez avec deux ou plusieurs trames de données dans Pandas, il peut être nécessaire d'obtenir leur produit cartésien, ce qui entraîne une nouvelle trame de données avec toutes les combinaisons de lignes des dataframes d'entrée.

Pandas >= 1.2

Dans les versions récentes de Pandas, la fonction de fusion peut être utilisée pour effectuer cette opération avec l'argument how='cross'. Cette approche est à la fois concise et efficace :

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')
Copier après la connexion

Pandas < 1.2

Pour les versions antérieures de Pandas, une technique légèrement différente est requise. Cela implique de créer une colonne clé qui est répétée pour chaque ligne des deux trames de données. Une fois cette colonne clé ajoutée, la fusion peut être utilisée pour effectuer le produit cartésien :

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']]
Copier après la connexion

Cette approche est plus complexe mais fonctionne efficacement dans les anciennes versions de Pandas.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal