У меня есть DataFrame:
dat = pd.DataFrame({
'key1' : [ 1, 1, 2, 2, 3, 3, 3, 3, 4, 4],
'key2' : ['a', 'b', 'a', 'c', 'b', 'c', 'd', 'e', 'c', 'e'],
'value' : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
})
Я мог бы использовать list
для агрегирования столбцов:
dat.groupby('key1')['key2'].apply(list)
## key1
## 1 [a, b]
## 2 [a, c]
## 3 [b, c, d, e]
## 4 [c, e]
## Name: key2, dtype: object
Что если бы я хотел получитьагрегат сгруппирован по key1
, где каждая строка представляет собой dict
из { key2 : value }
пар?Мой ожидаемый результат:
## key1
## 1 {a : 1, b : 2}
## 2 {a : 3, c : 4}
## 3 {b : 5, c : 6, d : 7, e : 8}
## 4 {c : 9, e : 10}
Как этого можно достичь в пандах?
Одним из решений может быть создание двух списков с использованием функции выше, а затем объединение их в виде dict
, номожет быть, есть лучшее решение?