Pandas Python: a ordem é preservada ao usar groupby () e agg ()?
Frequentei pandas usadosagg()
para executar estatísticas resumidas em todas as colunas de um data.frame. Por exemplo, veja como você produziria a média e o desvio padrão:
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
Nos dois casos, a ordem em que as linhas individuais são enviadas para a função agg não importa. Mas considere o seguinte exemplo, que:
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
Nesse caso, o lambda funciona como pretendido, produzindo a segunda linha em cada grupo. No entanto, não consegui encontrar nada na documentação do pandas que implique que isso seja garantido em todos os casos. Eu quero usaragg()
juntamente com uma função de média ponderada, quero ter certeza de que as linhas que entram na função estarão na mesma ordem em que aparecem no quadro de dados original.
Alguém sabe, de preferência em algum lugar no código fonte do docs ou pandas, se isso é garantido?