Как сделать аггрегированную таблицу по значениям списков
Есть DataFrame:
df = pd.DataFrame({'letters': [['a'], ['a', 'b'], ['a', 'b', 'c'], ['a', 'b', 'c' ,'d']],
'values': [1, 10, 100, 1000]})
| letters | values |
|---|---|
| a | 1 |
| a, b | 10 |
| a, b, c | 100 |
| a, b, c, d | 1000 |
Нужно посчитать сумму значений для каждой буквы, чтобы на выходе получилась такая таблица:
| letters | sum_values |
|---|---|
| a | 1111 |
| b | 1110 |
| c | 1100 |
| d | 1000 |
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
res = df.explode("letters").groupby("letters").sum().reset_index()
res:
letters values
0 a 1111
1 b 1110
2 c 1100
3 d 1000