словарь из многоиндексной группы - PullRequest
0 голосов
/ 21 сентября 2018
>>> df = pd.DataFrame({'a': [1,1,1,2,2,3,3,3,3,4,4,5,5], 'b': [0,1,1,0,1,0,0,1,1,1,0,1,0], 'v': [2,4,3,7,6,5,9,3,2,4,5,2,3]})
>>> df
    a  b  v
0   1  0  2
1   1  1  4
2   1  1  3
3   2  0  7
4   2  1  6
5   3  0  5
6   3  0  9
7   3  1  3
8   3  1  2
9   4  1  4
10  4  0  5
11  5  1  2
12  5  0  3
>>> df.groupby(by =['a', 'b']).groups
{(2, 0): [3], (5, 0): [12], (3, 0): [5, 6], (5, 1): [11], (1, 0): [0], (3, 1): [7, 8], (4, 1): [9], (1, 1): [1, 2], (2, 1): [4], (4, 0): [10]}

q1.Как я могу получить словарь, который бы вместо индексов каждой группы возвращал значения column v каждой группы?

q2.Есть ли способ получить вложенный такой словарь?

{1: {0:[2], 1: [4,3]}, 2: {0: [7], 1: [6]} ... } 

1 Ответ

0 голосов
/ 21 сентября 2018

Вы должны использовать to_dict

df.groupby(by =['a', 'b']).v.apply(list).unstack().to_dict('index')
Out[1042]: 
{1: {0: [2], 1: [4, 3]},
 2: {0: [7], 1: [6]},
 3: {0: [5, 9], 1: [3, 2]},
 4: {0: [5], 1: [4]},
 5: {0: [3], 1: [2]}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...