Gruppenoperationen auf Pandas Spalte mit Listen

Ich habe ein DataFrame mit einer Spalte, props , die Listen von Strings enthält.

Idealerweise möchte ich gern durch diese Spalte gruppieren, aber ich habe vorhersehbar einen Fehler, wenn ich es tue:

 TypeError: unhashable type: 'list' 

Gibt es einen vernünftigen Weg, um meine DataFrame neu zu ordnen, damit ich mit diesen Werten arbeiten kann?

  • Row Operationen innerhalb einer Gruppe von Pandas Dataframe
  • Wie finde ich Median mit Pandas auf einem Datensatz?
  • Pandas- Erstellen Sie eine neue Spalte mit der Anzahl der Beobachtungen in einer anderen Spalte gefüllt
  • Zähle Vorkommen von bestimmten Wörtern in pandas dataframe
  • Pandas: Cast Spalte zu String funktioniert nicht
  • Wie man den Index bei der Verwendung von Pandas fusioniert
  • 2 Solutions collect form web for “Gruppenoperationen auf Pandas Spalte mit Listen”

    Sie können die Listen von Strings in Tupel von Strings umwandeln. Tupel sind hashable, da sie unmutable sind. Dies ist natürlich vorausgesetzt, dass Sie nicht zu hinzufügen oder aus diesen Listen nach der Erstellung zu entfernen.

    Sie können das unveränderliche Gegenstück zu Listen verwenden, die Tupel sind :

     >>> import pandas as pd >>> df = pd.DataFrame([[[1, 2], 'ab'], [[2, 3], 'bc']]) >>> df.groupby(0).groups ... ... TypeError: unhashable type: 'list' 

    Sie können die Umrechnung auf die entsprechende Spalte apply :

     >>> df[0] = df[0].apply(tuple) >>> df.groupby(0).groups {(1, 2): [0], (2, 3): [1]} 
    Python ist die beste Programmiersprache der Welt.