Получить серию данных на основе разделения фрейма данных - PullRequest
0 голосов
/ 17 мая 2018

У меня есть такой фрейм данных для панд:

Cat | Val
 A  | 10
 B  | 20
 B  | 5
 A  | 8

Я хочу разбить столбцы на

[[10, 8],[20,5]]
[A,B]

Я знаю, что это очень просто, просто не могу найти нужный онлайн-ресурс дляон

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Рассмотрим код ниже. Сначала groupby в столбце интереса:

gb = df.groupby(by=['Cat'])

Теперь вы можете сделать следующее для Cat ( документы сухие, но, как вы можете видеть, это дикт, а ключи - имена групп.)

list(gb.groups.keys())

выход

['A', 'B']

А для Val мы можем получить субдф от каждой группы и получить столбец нашего интереса в виде списка.

[list(gb.get_group(x)['Val']) for x in gb.groups]

Придает

[[10, 8], [20, 5]]
0 голосов
/ 17 мая 2018

Используя groupby apply и list

s=df.groupby('Cat').Val.apply(list)
s.index.tolist()
Out[273]: ['A', 'B']
s.values.tolist()
Out[274]: [[10, 8], [20, 5]]

s.reset_index()
Out[276]: 
  Cat      Val
0   A  [10, 8]
1   B  [20, 5]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...