Bei der Arbeit mit Pandas-Datenrahmen ist es oft notwendig, das kartesische Produkt aus zwei oder mehr Datenrahmen zu erstellen. Dies kann eine nützliche Operation sein, um Daten aus mehreren Quellen zu kombinieren oder die Beziehungen zwischen verschiedenen Variablen zu untersuchen.
In neueren Versionen von Pandas (>= 1.2) ist das Kreuz Die Merge-Methode bietet eine praktische Möglichkeit, das kartesische Produkt zweier Datenrahmen zu berechnen. Um diese Methode zu verwenden, rufen Sie einfach die Merge-Funktion mit dem Argument how='cross' auf:
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')
Der resultierende Datenrahmen, df_cartesian, enthält alle Kombinationen von Zeilen aus df1 und df2, was zu einem kartesischen Produkt führt .
Für Versionen von Pandas vor 1.2 ist es Es war notwendig, einen etwas anderen Ansatz zu verwenden, um das kartesische Produkt zu erstellen. Dieser Ansatz umfasste die Verwendung wiederholter Schlüssel in einem der Datenrahmen und die anschließende Zusammenführung dieser Schlüssel:
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']]
Durch die Erstellung eines Schlüssels, der für jede Zeile in beiden Datenrahmen wiederholt wird, können wir durch Zusammenführung effektiv ein kartesisches Produkt erstellen auf diesem Schlüssel.
Ob Sie Pandas >= 1.2 oder eine frühere Version verwenden, die Methoden Die oben beschriebenen Methoden bieten effiziente Möglichkeiten zum Erstellen des kartesischen Produkts aus zwei oder mehr Datenrahmen. Abhängig von der spezifischen Version von Pandas, die Sie verwenden, kann ein Ansatz bequemer oder effizienter sein als der andere.
Das obige ist der detaillierte Inhalt vonWie erstellt man effizient ein kartesisches Produkt von Pandas DataFrames?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!