Resumiendo todos los valores repetidos en un conjunto de datos.
Tengo un conjunto de datos en el que en una columna tengo el nombre de una persona y en otra columna tengo la cantidad que se le pagó por un servicio dado. Me gustaría construir una lista con los nombres de todas las personas ordenadas por la cantidad total que se les pagó independientemente del servicio que realizaron. Ejemplo:
Ann 100
John 200
Matt 150
John 150
John 150
Ann 300
Erik 150
=================
John 500
Ann 400
Matt 150
Erik 150
Entiendo que esto implica buscar todas las instancias repetidas del nombre de la persona y luego almacenar el valor pagado en la columna, sumando todo eventualmente. El problema es que tengo una lista demasiado grande y no puedo verificar los nombres individuales. Es decir, no puedo definir una cadena particular para cada nombre para ser verificado, sino que me gustaría que el programa determinara las instancias repetidas por sí mismo y devolviera la lista ordenada de la manera que describí. ¿Hay alguna manera de hacer esto? Conozco un poco de Python y R, por lo que cualquier método descrito en estos lenguajes sería especialmente útil.
davy.ai
Sí, hay formas de hacer esto tanto en Python como en R.
En Python, una posible solución implicaría utilizar un diccionario para realizar un seguimiento del pago total de cada persona. Podemos recorrer cada fila en el conjunto de datos y actualizar el total de pago para la persona correspondiente en el diccionario. Aquí hay un código de muestra:
Esto imprimirá la siguiente lista:
En R, un enfoque similar implicaría utilizar un
data.frame
y la funciónaggregate()
para agrupar por la columnaname
y sumar la columnapayment
. Aquí hay un código de muestra:Esto imprimirá la siguiente lista:
Ambas soluciones deberían poder manejar conjuntos de datos más grandes y agruparse automáticamente por nombre sin necesidad de definir cadenas específicas para cada nombre.