Сгруппируйте в список набор данных на основе повторяющегося столбца в pandas python - PullRequest
2 голосов
/ 29 мая 2020

У меня есть фрейм данных, импортированный с pandas из excel в таком формате:

df = pd.read_excel('excel_file.xlsx')

data = pd.DataFrame(df, columns=['A', 'B', 'C', 'D', 'E'])


A    B   C    D   E
12  bob  32  abc 123
12  jan  34  fbc  23
14  jan  32  ac  133
12  cat  32  abc 123

Я хотел бы сгруппировать их по столбцу B, чтобы результат был следующим:

list[0] = [[12  bob  32  abc 123]]
list[1] = [[12  jan  34  fbc  23][14  jan  32  ac  133]]
list[2] = [[12  cat  32  abc 123]]

Я безуспешно пытался использовать дублированную функцию

Большое спасибо !!

1 Ответ

3 голосов
/ 29 мая 2020

Можно сделать:

lst = [d.values.tolist() for (k,d) in df.groupby('B', sort=False)]

# check
for i in range(len(lst)): print(lst[i])

Вывод:

[[12, 'bob', 32, 'abc', 123]]
[[12, 'jan', 34, 'fbc', 23], [14, 'jan', 32, 'ac', 133]]
[[12, 'cat', 32, 'abc', 123]]
...