Pandas Multiindex Groupby 列

Posted

技术标签:

【中文标题】Pandas Multiindex Groupby 列【英文标题】:Pandas Multiindex Groupby on Columns 【发布时间】:2017-04-06 08:55:11 【问题描述】:

有没有在多索引中的列上使用 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】:

需要在groupby方法中指定坐标轴:

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

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

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

【讨论】:

以上是关于Pandas Multiindex Groupby 列的主要内容,如果未能解决你的问题,请参考以下文章

Pandas Multiindex 和 Groupby 返回奇怪的行为

Pandas Groupby Plotting MultiIndex 按***分组

Pandas GroupBy 和 MultiIndex 上列级别的最大值

Pandas Multiindex Groupby 聚合列与另一列的值

不同长度的pandas groupby元组-ValueError:在通过级别中找不到值:MultiIndex

Pandas Dataframe Multiindex 按级别和列值排序