Даже если DataFrame имеет ноль строк, я бы ожидал, что groupby
все равно вернет результат с MultiIndex, который отражает столбцы groupby.Однако в некоторых случаях этого не происходит.Например, в следующем коде индекс не имеет имени и не является MultiIndex.
foo = pd.DataFrame({'col1':[None,None], 'col2':[None,None], 'col3':[None,None]})
display(foo.groupby(['col1', 'col2']).agg({'col3':'sum'}))
С другой стороны, MultiIndex (с правильными именами уровней) будет существовать, если я изменю любой изтип столбцов для необъектного типа.Кроме того, при группировании по одному столбцу я получаю индекс с правильным именем, даже если все типы все еще являются объектами.
Является ли это поведение преднамеренным?Какова философия, лежащая в основе MultiIndex?