Objetivo
Tengo una trama de datos pandas, como se muestra a continuación, con varias columnas y le gustaría obtener el total de la columna, MyColumn.
Marco de datos -df:
print df
X MyColumn Y Z
0 A 84 13.0 69.0
1 B 76 77.0 127.0
2 C 28 69.0 16.0
3 D 28 28.0 31.0
4 E 19 20.0 85.0
5 F 84 193.0 70.0
Mi intento :
Intenté obtener la suma de la columna usando groupbyy .sum():
Total = df.groupby['MyColumn'].sum()
print Total
Esto provoca el siguiente error:
TypeError: 'instancemethod' object has no attribute '__getitem__'
Rendimiento esperado
Hubiera esperado que la salida fuera la siguiente:
319
O, alternativamente, me gustaría dfser editado con un nuevo rowtítulo que TOTALcontenga el total:
X MyColumn Y Z
0 A 84 13.0 69.0
1 B 76 77.0 127.0
2 C 28 69.0 16.0
3 D 28 28.0 31.0
4 E 19 20.0 85.0
5 F 84 193.0 70.0
TOTAL 319

Respuestas:
Deberías usar
sum:Luego usa
locconSeries, en ese caso, el índice debe establecerse como el mismo que la columna específica que necesita sumar:porque si pasa escalar, se llenarán los valores de todas las filas:
Hay otras dos soluciones con
atyixvea las aplicaciones a continuación:Nota: Desde Pandas v0.20,
ixha quedado obsoleto. Utiliceloco en suiloclugar.fuente
.lochace en el ejemplo anterior?loces para configurar con ampliación .attambién funciona para la configuración con ampliación, consulte la última edición.The .loc/.ix/[] operations can perform enlargement when setting a non-existant key for that axis., por lo quelocoixo[]. en la siguiente sección se escribe.at may enlarge the object in-place as above if the indexer is missing.Todos los métodos son buenos, peroatcreo que es el más rápido.Otra opción con la que puedes ir aquí:
También puede utilizar el
append()método:Actualizar:
En caso de que necesite agregar la suma para todas las columnas numéricas , puede realizar una de las siguientes acciones:
Úselo
appendpara hacer esto de una manera funcional (no cambia el marco de datos original):Úselo
locpara mutar el marco de datos en su lugar:fuente
Similar a obtener la longitud de un marco de datos
len(df), lo siguiente funcionó para pandas y blaze:o alternativamente
fuente
Si hay algún problema en esto, corríjame.
fuente
Como otra opción, puede hacer algo como a continuación
Debajo de la secuencia de comandos, puede usar para los datos anteriores
fuente