Я прочитал такой пример из "10 минут в пандах"
#+begin_src ipython :session alinbx :results output
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar',
'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three',
'two', 'two', 'one', 'three'],
'C': np.random.randn(8),
'D': np.random.randn(8)})
print(df)
#+end_src
#+RESULTS:
: A B C D
: 0 foo one 0.556718 0.948458
: 1 bar one 0.136203 -0.622480
: 2 foo two -1.472084 -1.269811
: 3 bar three 0.825478 -0.313981
: 4 foo two -0.179626 -1.176105
: 5 bar two -0.857654 2.008154
: 6 foo one 0.932524 0.070442
: 7 foo three 1.397533 1.050003
Группировка, а затем применение функции sum () к результирующим группам.
#+begin_src ipython :session alinbx :results output
print(df.groupby('A').sum())
#+end_src
#+RESULTS:
: C D
: A
: bar 0.104028 1.071693
: foo 1.235065 -0.397013
Проблема в том, чточто A не выровнен с B C.
Другой пример, Группировка по нескольким столбцам образует иерархический индекс, и снова мы можем применить функцию суммы
#+begin_src ipython :session alinbx :results output
print(df.groupby(['A', 'B']).sum())
#+end_src
#+RESULTS:
: C D
: A B
: bar one 0.136203 -0.622480
: three 0.825478 -0.313981
: two -0.857654 2.008154
: foo one 1.489242 1.018899
: three 1.397533 1.050003
: two -1.651711 -2.445916
A, B также невыровнен по C, D
Как можно решить проблему?