Heim >Backend-Entwicklung >Python-Tutorial >Wie führe ich ein kartesisches Produkt von DataFrames in Pandas durch?

Wie führe ich ein kartesisches Produkt von DataFrames in Pandas durch?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-24 08:19:13339Durchsuche

How to Perform a Cartesian Product of DataFrames in Pandas?

Kartesisches Produkt in Pandas

Bei Datenmanipulationsaufgaben ist es oft notwendig, Zeilen aus mehreren Datenrahmen in einem einzigen Datenrahmen zu kombinieren. Eine Möglichkeit, dies zu erreichen, besteht darin, ein kartesisches Produkt durchzuführen, das alle möglichen Kombinationen von Zeilen aus den Eingabedatenrahmen generiert.

Für Pandas-Versionen >= 1.2 bietet die Zusammenführungsfunktion eine integrierte Methode für das kartesische Produkt Berechnungen. Der folgende Code demonstriert seine Verwendung:

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

df1.merge(df2, how='cross')

Ausgabe:

   col1  col2  col3
0     1     3     5
1     1     3     6
2     2     4     5
3     2     4     6

Für Pandas-Versionen < 1.2 ist ein alternativer Ansatz mit der Merge-Funktion verfügbar. Bei dieser Methode wird jedem Datenrahmen ein gemeinsamer Schlüssel hinzugefügt, um die Verknüpfung zu erleichtern:

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

pd.merge(df1, df2,on='key')[['col1', 'col2', 'col3']]

Ausgabe:

   col1  col2  col3
0     1     3     5
1     1     3     6
2     2     4     5
3     2     4     6

Das obige ist der detaillierte Inhalt vonWie führe ich ein kartesisches Produkt von DataFrames in Pandas durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn