Heim > Backend-Entwicklung > Python-Tutorial > Wie kann man das kartesische Produkt von DataFrames in Pandas effizient berechnen?

Wie kann man das kartesische Produkt von DataFrames in Pandas effizient berechnen?

Mary-Kate Olsen
Freigeben: 2024-12-07 17:32:13
Original
469 Leute haben es durchsucht

How to Efficiently Calculate the Cartesian Product of DataFrames in Pandas?

Kartesisches Produkt in Pandas

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.

Pandas >= 1.2

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')
Nach dem Login kopieren

Pandas < 1.2

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']]
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage