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!!!