У меня есть такой фрейм данных:
class1 class2 values values2
0 1 0 1 5
1 1 1 2 8
2 1 0 3 3
3 2 0 5 6
4 2 0 2 5
5 2 1 4 2
6 2 1 2 3
7 2 1 3 1
8 3 0 1 3
9 3 0 3 3
10 3 1 4 2
11 3 1 2 4
Я надеюсь установить Multiindex на основе class1
и class2
, а затем объединить value
и value2
в список.Поэтому я хочу получить результат , который должен выглядеть следующим образом:
class1 class2 values values2
0 1 0 [1, 3] [5, 3]
1 1 1 [2] [8]
2 2 0 [5, 2] [6, 5]
3 2 1 [4, 2, 3] [2, 3, 1]
4 3 0 [1, 3] [3, 3]
5 3 1 [4, 2] [2, 4]
Я попытался сделать это:
df.groupby(['class1']).agg(lambda x: x.tolist()).reset_index()
Это не проблема.Но я попробовал Multiindex:
df.groupby(['class1','class2']).agg(lambda x: x.tolist()).reset_index()
Показать ошибку:
ValueError: Функция не уменьшает
Я также попробовал это сделать:
df.groupby(['class1', 'class2'])['values'].apply(lambda x: x.tolist()).reset_index()
Этот метод может обрабатываться отдельно только для value
или Value2
.
Может кто-нибудь помочь мне с лучшим способом?Заранее спасибо