Python Pandas: сохраняется ли порядок при использовании groupby () и agg ()?

Я часто бывал в употреблении пандagg() функция для запуска сводной статистики по каждому столбцу data.frame. Например, вот как вы могли бы получить среднее и стандартное отклонение:

df = pd.DataFrame({'A': ['group1', 'group1', 'group2', 'group2', 'group3', 'group3'],
                   'B': [10, 12, 10, 25, 10, 12],
                   'C': [100, 102, 100, 250, 100, 102]})

>>> df
[output]
        A   B    C
0  group1  10  100
1  group1  12  102
2  group2  10  100
3  group2  25  250
4  group3  10  100
5  group3  12  102

В обоих случаях порядок отправки отдельных строк в функцию agg не имеет значения. Но рассмотрим следующий пример, который:

df.groupby('A').agg([np.mean, lambda x: x.iloc[1] ])

[output]

        mean  <lambda>  mean  <lambda>
A                                     
group1  11.0        12   101       102
group2  17.5        25   175       250
group3  11.0        12   101       102

В этом случае лямбда-функция функционирует как положено, выводя второй ряд в каждой группе. Тем не менее, я не смог найти в документации для панд ничего, что подразумевало бы, что это гарантированно верно во всех случаях. Я хочу использоватьagg() наряду со средневзвешенной функцией, поэтому я хочу быть уверенным, что строки, входящие в функцию, будут в том же порядке, в котором они отображаются в исходном фрейме данных.

Кто-нибудь знает, в идеале через где-нибудь в исходном коде документов или панд, гарантированно ли это так?

Ответы на вопрос(4)

Ваш ответ на вопрос