панда групповой многоуровневый заголовок - PullRequest
0 голосов
/ 20 сентября 2018

Я бы хотел сгруппировать по одному из уровней информационного кадра панд, индекс и столбцы которого являются мультииндексом.Я бы хотел сгруппировать один из уровней заголовка, но он дает мне ключевую ошибку, и я не уверен, почему.

Этот кадр данных может быть использован в качестве примера:

arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],
['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']]
tuples = list(zip(*arrays))

arrays2 = [['bar','baz','foo','qux'],
       ['one','two','one','two'],
       ['a','b','c','d']]
tuples2 = list(zip(*arrays2))

header = pd.MultiIndex.from_tuples(tuples, names=['h1', 'h2'])
index = pd.MultiIndex.from_tuples(tuples2, names=['first', 'second','third'])

df2=pd.DataFrame(np.random.randn(3, 3), index=index[:3], columns=header[:3])

Если я пытаюсь сделать

df2.groupby('h1',axis=1).sum()

, я получаю ошибку ключа, но с индексом работает нормально.

df2.groupby(df2.index.names[0],axis=0).sum()

в чем причина и как я могу ее решить?

1 Ответ

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

Добавить level

df2.groupby(level=['h1'],axis=1).sum()
Out[960]: 
h1                       bar       baz
first second third                    
bar   one    a     -1.077170  0.585508
baz   two    b     -3.426262 -0.193342
foo   one    c      1.079590  0.336535

Или просто сделать sum здесь

df2.sum(level=['h2'],axis=1)
Out[965]: 
h2                       one       two
first second third                    
bar   one    a      0.028593 -0.520256
baz   two    b     -3.986019  0.366415
foo   one    c      0.548203  0.867922
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...