Pandas 列上的多索引分组
Pandas Multiindex Groupby on Columns
是否可以在多索引的列上使用 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')
那么有没有不转置的方法呢?
需要在groupby
方法中指定坐标轴:
df.groupby(level = 1, axis = 1).sum()
或者如果你的意思是 groupby 级别 0:
df.groupby(level = 0, axis = 1).sum()
是否可以在多索引的列上使用 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')
那么有没有不转置的方法呢?
需要在groupby
方法中指定坐标轴:
df.groupby(level = 1, axis = 1).sum()
或者如果你的意思是 groupby 级别 0:
df.groupby(level = 0, axis = 1).sum()