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?

  • Wie kann man Gruppen in Pandas mit einem Teil der Datumsfolge machen?
  • Bearbeitbare QTableView und Pandas funktionieren nicht richtig
  • Wie lese / schreibe ich in eine Untergruppe mit einem HDF5Store?
  • Split pandas dataframe von String
  • Quartiles in Pandas bekommen, wenn Daten eine geringe Varianz haben
  • Wie bekomme ich python Wörterbücher in eine Pandas Zeitreihe dataframe wo Schlüssel ist Datum Objekt
  • 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.