Renombrar nombres de columna en Pandas Groupby función [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Múltiples agregaciones de la misma columna usando pandas GroupBy.agg () 3 respuestas1). Tengo el siguiente conjunto de datos de ejemplo:
>>> 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
Quería agrupar las observaciones de este conjunto de datos por ID y Región y sumando el recuento de cada grupo. Así que usé algo como esto:
>>> 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
On usando as_index = False Puedo obtener una salida "SQL-Like". Mi problema es que no puedo cambiar el nombre del recuento de variables agregadas aquí. Entonces, en SQL, si quisiera hacer lo anterior, haría algo como esto:
select ID, Region, sum(count) as Total_Numbers
from df
group by ID, Region
order by ID, Region
Como vemos, es muy fácil para mí cambiar el nombre de la variable agregada 'count' a Total_Numbers en SQL. Quería hacer lo mismo en Pandas pero no pude encontrar esa opción en la función de grupo. ¿Alguien puede ayudar?
2). La segunda pregunta y más de una observación es que ¿es posible usar directamente los nombres de columna en la función de marco de datos de Pandas sin encerrarlos entre comillas? Entiendo que los nombres de las variables son cadenas, por lo que tiene que estar entre comillas, pero veo si se usa la función de marco de datos externo y, como atributo, no es necesario que estén entre comillas. Como df.ID.sum () etc. Es solo cuando lo usamos en una función DataFrame como df.sort () o df.groupby, tenemos que usarlo entre comillas. Esto es realmente un poco doloroso ya que en SQL o en SAS u otros lenguajes simplemente usamos el nombre de la variable sin citarlos. ¿Alguna sugerencia sobre esto?
ugiera amablemente sobre los dos puntos anteriores (primero uno principal, segundo más de una opinión).
Gracia