Python версия: 3.5.2;Версия Pandas: 0.23.1
Я замечаю неожиданное поведение, когда я группирую, используя два индекса, но каждая строка уникальна в первом индексе.Код, который я выполняю для моего фрейма данных со столбцом c:
df.c.groupby(df.index.names).min()
Все работает, как ожидается, когда строки не являются уникальными в первом индексе.Чтобы сделать это понятным, я включил две версии ниже.Изменить: теперь включает три версии!
Версия 1: имеет ожидаемый вывод
df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [1, 2, 4]], columns=['a', 'b', 'c'])
df = df.set_index(['a','b']).sort_index()
Ввод:
c
a b
1 2 3
2 4
4 5 6
Выход:
a b
1 2 3
4 5 6
Версия 2: имеет неожиданный вывод
df = pd.DataFrame([[1, 2, 3], [4, 5, 6]], columns=['a', 'b', 'c'])
df = df.set_index(['a','b']).sort_index()
Ввод:
c
a b
1 2 3
4 5 6
Выход:
a 3
b 6
Ожидаемый результат:
a b
1 2 3
4 5 6
Версия 3: ожидаемый результат, но не ожидаемый с учетом версии 2.
df = pd.DataFrame([[1, 2, 3, 4], [4, 5, 6, 7]], columns=['a', 'b1', 'b2', 'c'])
df = df.set_index(['a','b1','b2']).sort_index()
Ввод:
c
a b1 b2
1 2 3 4
4 5 6 7
Выход:
a b1 b2
1 2 3 4
4 5 6 7