ich ein Datenrahmen df haben, das hat sieht wie folgt aus:Datenrahmen zu Wörterbuch der Liste von Tupeln von gruppierten Schlüssel
a b c d
0 8 xx 17 1.0
1 8 xy 19 1.0
2 8 zz 13 0.0
3 9 tt 8 5.0
Ich versuche, ein Wörterbuch zu erstellen, die einen Schlüssel mit einer Liste von Tupeln hat wie die folgenden:
{8:[(17,1.0),(19,1.0),(13,0.0)], 9:[(8,5.0)]}
Hier kommt der Schlüssel aus der Spalte a und die Liste von Tupeln sind die Spalte c und d Spalte, die Schlüssel als haben. Ich beantrage diese auf andere Datensätze als auch und
df_new = df.groupby(['a'])[['c','d']).apply(lambda x: [tuple(x) for x in x.values])
jedoch versucht haben, ich bekomme immer den Fehler
raise TypeError('Series.name must be a hashable type')
TypeError: Series.name must be a hashable type
ich versucht habe, zu entfernen [ ‚a‘] in der groupby und halten es als 'a' wie folgt:
df_new = df.groupby('a')[['c','d']).apply(lambda x: [tuple(x) for x in x.values])
Aber ich bekomme die gleichen folgenden Fehler:
raise TypeError('Series.name must be a hashable type')
TypeError: Series.name must be a hashable type
Ich möchte nicht alles im ursprünglichen Datenrahmen df unveränderlich machen. Ich möchte es so behalten wie es ist.
Gibt es eine Möglichkeit, dies mit Pandas-Funktionalität zu erreichen? Ich möchte wirklich keine Listen erstellen und dann einige nach ihrem Index zusammenfügen und daraus ein Diktat erstellen.
Was ist Ihre Pandas Version? 'print (pd.show_versionen())'? – jezrael