Maison > développement back-end > Tutoriel Python > Comment créer efficacement un produit cartésien de DataFrames Pandas ?

Comment créer efficacement un produit cartésien de DataFrames Pandas ?

Mary-Kate Olsen
Libérer: 2024-12-11 17:59:15
original
975 Les gens l'ont consulté

How to Efficiently Create a Cartesian Product of Pandas DataFrames?

Produit cartésien dans Pandas : meilleures pratiques et solutions

Lorsque vous travaillez avec des dataframes Pandas, il est souvent nécessaire de créer le produit cartésien de deux ou plusieurs dataframes. Cela peut être une opération utile pour combiner des données provenant de plusieurs sources ou explorer les relations entre différentes variables.

La méthode de fusion croisée

Dans les versions récentes de Pandas (>= 1.2), la méthode de fusion croisée La méthode de fusion fournit un moyen pratique de calculer le produit cartésien de deux trames de données. Pour utiliser cette méthode, appelez simplement la fonction de fusion avec l'argument 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')
Copier après la connexion

La trame de données résultante, df_cartesian, contiendra toutes les combinaisons de lignes de df1 et df2, ce qui donnera un produit cartésien. .

Utilisation de clés répétées dans la fusion

Pour les versions de Pandas antérieures à 1.2, il Il a fallu utiliser une approche légèrement différente pour créer le produit cartésien. Cette approche impliquait l'utilisation de clés répétées dans l'une des trames de données, puis la fusion de ces clés :

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

En créant une clé répétée pour chaque ligne des deux trames de données, nous pouvons réaliser efficacement un produit cartésien en fusionnant sur cette clé.

Conclusion

Que vous utilisiez Pandas >= 1.2 ou une version antérieure, les méthodes décrits ci-dessus fournissent des moyens efficaces pour créer le produit cartésien de deux ou plusieurs trames de données. Selon la version spécifique de Pandas que vous utilisez, une approche peut être plus pratique ou efficace que l'autre.

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