Я использовал часто используемую функцию pandas '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
В этом случае лямбда функционирует по назначению, выводя вторую строку в каждой группе. Однако я не смог найти что-либо в документации pandas, которая подразумевает, что во всех случаях это гарантировано. Я хочу использовать agg()
вместе со средневзвешенной функцией, поэтому я хочу быть уверенным, что строки, входящие в функцию, будут в том же порядке, что и в исходном фрейме данных.
Кто-нибудь знает, в идеале, где-то в документах или pandas исходном коде, если это гарантировано?