列上的Pandas Multiindex Groupby

时间:2016-11-22 15:39:38

标签: python pandas group-by multi-index

无论如何都要在Multiindex的列上使用groupby。我知道你可以在行上,在这方面有很好的documentation。但是我似乎无法在列上进行分组。我唯一的解决方案是转置数据帧。

#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')

那么有没有办法在没有移调的情况下做到这一点?

1 个答案:

答案 0 :(得分:7)

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

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

enter image description here

或者如果你的意思是groupby 0级:

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

enter image description here