Wenn Sie mit zwei oder mehr Datenrahmen in Pandas arbeiten, kann es erforderlich sein, deren kartesisches Produkt zu erhalten, was zu einem neuen Datenrahmen mit führt alle Kombinationen von Zeilen aus den Eingabedatenrahmen.
In neueren Versionen von Pandas kann die Merge-Funktion verwendet werden, um diesen Vorgang mit dem Argument how='cross' auszuführen. Dieser Ansatz ist sowohl prägnant als auch effizient:
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')
Für frühere Versionen von Pandas ist eine etwas andere Technik erforderlich. Dabei wird eine Schlüsselspalte erstellt, die für jede Zeile in beiden Datenrahmen wiederholt wird. Sobald diese Schlüsselspalte hinzugefügt wurde, kann die Zusammenführung verwendet werden, um das kartesische Produkt durchzuführen:
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']]
Dieser Ansatz ist aufwändiger, funktioniert aber effektiv in älteren Versionen von Pandas.
Das obige ist der detaillierte Inhalt vonWie kann man das kartesische Produkt von DataFrames in Pandas effizient berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!