【发布时间】:2019-03-06 18:21:25
【问题描述】:
即使 DataFrame 的行数为零,我希望 groupby 仍会返回带有反映 groupby 列的 MultiIndex 的结果。但是,在某些情况下,这不会发生。例如,在下面的代码中,索引没有名称,也不是 MultiIndex。
foo = pd.DataFrame({'col1':[None,None], 'col2':[None,None], 'col3':[None,None]})
display(foo.groupby(['col1', 'col2']).agg({'col3':'sum'}))
另一方面,如果我将任何列的类型更改为非对象类型,则会存在 MultiIndex(具有正确的级别名称)。此外,当按单列分组时,即使类型仍然都是 Object,我也会得到一个名称正确的索引。
这种行为是故意的吗?使用 MultiIndex 背后的理念是什么?
【问题讨论】: