Ich habe eine pandas.DataFrame
mit der folgenden Struktur:GROUPBY und reduzieren pandas Datenrahmen mit numpy Arrays als Einträge
>>> data
a b values
1 0 [1, 2, 3, 4]
2 0 [3, 4, 5, 6]
1 1 [1, 3, 7, 9]
2 1 [2, 4, 6, 8]
('values'
hat die Art der numpy.array
). Was ich tun möchte ist, die Daten nach Spalte 'a'
zu gruppieren und dann die Liste der Werte zu kombinieren. Mein Ziel ist es mit der folgenden, am Ende:
>>> data
a values
1 [1, 2, 3, 4, 1, 3, 7, 9]
2 [3, 4, 5, 6, 2, 4, 6, 8]
Beachten Sie, dass die Reihenfolge der Werte nicht Angelegenheit. Wie erreiche ich das? Ich dachte über so etwas wie
>>> grps = data.groupby(['a'])
>>> grps['values'].agg(np.concatenate)
aber nicht mit einem KeyError
. Ich bin mir sicher, dass es einen Panda- Weg gibt, um das zu erreichen - aber wie? Danke.
Wie erreiche ich, dass die resultierende Spalte noch den Namen "Werte" hat? – rammelmueller
@rammelmuller Was willst du über a machen, und b? Lass es fallen? –
'' b'' wird standardmäßig gelöscht, ''a'' sollte bleiben und gleich aufgerufen werden. – rammelmueller