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
Mary-Kate Olsenoriginal
2024-12-11 17:59:15977parcourir

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')

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']]

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!

Déclaration:
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