Seite 1 von 1
Das Gegenteil von Explode
Verfasst: Dienstag 17. November 2020, 09:37
von MacGruber
Moin,
gibt es eine Funktion in Pandas die das Gegenteil von Explode macht?
Ich möchte aus einem DF wie diesem...
Person;Haustier;Auto
"Person1";"Hund";"Corsa"
"Person1",Katze";"Kuga"
"Person2",Katze";"Golf"
"Person1",Hamster";"Golf"
"Person2",Schlange";"Bulli"
...einen DF wie diesen machen....
Person;Haustier;Auto
"Person1";["Hund", "Katze", "Hamster"];["Corsa", "Kuga", "Golf"]
"Person2",["Katze", "Schlange"];["Golf", "Bulli"]
Wisst ihr weiter?
Gruß
Re: Das Gegenteil von Explode
Verfasst: Dienstag 17. November 2020, 09:57
von Sirius3
Du suchst groupby
Re: Das Gegenteil von Explode
Verfasst: Dienstag 17. November 2020, 10:15
von MacGruber
Hi Sirius
daran habe ich auch schon gedacht, aber keine passende Unterfunktion gefunden. Mit Unterfunktion meine ich sowas wie min, max und sum. Was muss ich den da verwenden?
Re: Das Gegenteil von Explode
Verfasst: Dienstag 17. November 2020, 10:30
von __blackjack__
@MacGruber: `agg()` mit einer entsprechenden Funktion würde ich vermuten.
Re: Das Gegenteil von Explode
Verfasst: Dienstag 17. November 2020, 11:29
von MacGruber
Ich denke ich habe es jetzt. Mit groupby und apply(set) kann ich die einzelnen Spalten zusammenfassen und anschließend merge ich sie zu einem gemeinsamen DF.
Eine Methode um alle Spalten gleichzeitig zusammenzufassen, habe ich leider nicht gefunden.
Re: Das Gegenteil von Explode
Verfasst: Dienstag 17. November 2020, 13:32
von __blackjack__
@MacGruber: Wie gesagt: `agg()` mit entsprechender Funktion:
Code: Alles auswählen
In [99]: df
Out[99]:
Person Haustier Auto
0 Person1 Hund Corsa
1 Person1 Katze Kuga
2 Person2 Katze Golf
3 Person1 Hamster Golf
4 Person2 Schlange Bulli
In [100]: df.groupby("Person").agg(list)
Out[100]:
Haustier Auto
Person
Person1 [Hund, Katze, Hamster] [Corsa, Kuga, Golf]
Person2 [Katze, Schlange] [Golf, Bulli]
Re: Das Gegenteil von Explode
Verfasst: Mittwoch 18. November 2020, 20:26
von MacGruber
Cool. Hat super funktioniert. Vielen Dank!!!