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.
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')
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']]
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!