Renomear nomes de colunas na função Pandas Groupby [duplicado]
Esta pergunta já tem uma resposta aqui:
gregações múltiplas da mesma coluna usando pandas GroupBy.agg () 3 respostas1). Eu tenho o seguinte exemplo de conjunto de dados:
>>> df
ID Region count
0 100 Asia 2
1 101 Europe 3
2 102 US 1
3 103 Africa 5
4 100 Russia 5
5 101 Australia 7
6 102 US 8
7 104 Asia 10
8 105 Europe 11
9 110 Africa 23
Eu queria agrupar as observações desse conjunto de dados por ID e Região e somando a contagem de cada grupo. Então, eu usei algo como isto:
>>> print(df.groupby(['ID','Region'],as_index=False).count().sum())
ID Region count
0 100 Asia 2
1 100 Russia 5
2 101 Australia 7
3 101 Europe 3
4 102 US 9
5 103 Africa 5
6 104 Asia 10
7 105 Europe 11
8 110 Africa 23
Ao usar as_index = False, sou capaz de obter uma saída "SQL-Like". Meu problema é que não consigo renomear a contagem agregada de variáveis aqui. Então, no SQL, se quisesse fazer a coisa acima, eu faria algo assim:
select ID, Region, sum(count) as Total_Numbers
from df
group by ID, Region
order by ID, Region
Como vemos, é muito fácil para mim renomear a variável agregada 'count' para Total_Numbers no SQL. Eu queria fazer o mesmo no Pandas, mas não consegui encontrar essa opção na função agrupar por. Alguém pode ajudar?
2). A segunda pergunta e mais uma observação é que é possível usar diretamente os nomes das colunas na função dataframe do Pandas sem incluí-los entre aspas? Entendo que os nomes das variáveis são string, portanto, deve estar entre aspas, mas vejo se usamos a função fora do quadro de dados e, como atributo, não precisamos que eles estejam entre aspas. Como df.ID.sum () etc. É apenas quando o usamos em uma função DataFrame como df.sort () ou df.groupby, que precisamos usá-lo entre aspas. Isso é realmente um pouco trabalhoso, pois no SQL ou no SAS ou em outras linguagens, simplesmente usamos o nome da variável sem citá-las. Alguma sugestão sobre isso?
Sugira gentilmente os dois pontos acima (primeiro um principal, segundo mais de uma opinião
Obrigad