Python 列上的多索引Groupby

Python 列上的多索引Groupby,python,pandas,group-by,multi-index,Python,Pandas,Group By,Multi Index,在多索引中的列上是否仍然可以使用groupby。我知道你可以在两排比赛中获胜,这方面是有好处的。然而,我似乎无法按列分组。我唯一的解决方案是转置数据帧 #generate data (copied from pandas example) arrays=[['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']] tuples

在多索引中的列上是否仍然可以使用groupby。我知道你可以在两排比赛中获胜,这方面是有好处的。然而,我似乎无法按列分组。我唯一的解决方案是转置数据帧

#generate data (copied from pandas example)
arrays=[['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
df = pd.DataFrame(np.random.randn(3, 8), index=['A', 'B', 'C'], columns=index)
现在我将尝试按失败的列分组

df.groupby(level=1)
df.groupby(level='first')
然而,与行的转换是有效的

df.T.groupby(level=1)
df.T.groupby(level='first')

那么,有没有一种方法可以在不转置的情况下执行此操作?

您需要在
groupby
方法中指定轴:

df.groupby(level = 1, axis = 1).sum()

或者,如果您是指groupby级别0:

df.groupby(level = 0, axis = 1).sum()