28 noviembre, 2021

SUMA CONDICIONADA EN PYTHON CON DATOS DE EXCEL UTILIZANDO PANDAS

Hola a todos!

Hoy escribiré un pequeño post sobre python y cómo podemos realizar una suma condicionada con datos de Excel y usando Pandas.

Queda claro que podemos utilizar multitud de métodos para realizar esta tarea, el objetivo de este post es aprender a utilizar Pandas y una forma de sumar datos numéricos según una condición introducida.

Teniendo los siguientes datos:

Se pide obtener la suma de las cantidades de los usuarios entre 2 y 4 (ambos incluidos).

Para ello os propongo el siguiente código:

import pandas as pd
import xlsxwriter
#Importamos archivo excel
df = pd.read_excel(r"C:\Users\USUARIO\OneDrive\Documents-Segu\SUMAR_SI\SUMAR.xlsx",sheet_name='Hoja1')
count=0
total=0
workbook = xlsxwriter.Workbook(r'C:\Users\USUARIO\OneDrive\Documents-Segu\SUMAR_SI\RESULTADO_SUMA.xlsx')
worksheet = workbook.add_worksheet('Hoja1')
MiArray=['USUARIO', 'CANTIDAD']
#grabamos datos en archivo excel
for index, row in df.iterrows():
    #indicamos condiciones para sumar
    if row[0]>=2 and row[0]<=4:
        total+=row[1]
        worksheet.write(count+1, 0, row[0])
        worksheet.write(count+1, 1, row[1])
        print(row[0],row[1])
        count += 1
print('Total',total)  
worksheet.write(count+1, 0, "Total")  
worksheet.write(count+1, 1, total) 
#grabamos encabezados
for columna, item in enumerate(MiArray):
    worksheet.write(0, columna, item)    
workbook.close()

El resultado que vamos a obtener (lo he programado para visualizarlo en Visual Studio) es el siguiente:

El mismo resultado que vamos a encontrar en la salida en una hoja de Excel que genera el código.

Como indicaba, esto podríamos hacerlo de muchas formas e incluso más eficientes, por ejemplo con sentencias de SQL, etc. Pero me interesa hacerlo con loops en los que introducir condiciones específicas.

Y esto es todo, espero que os sea de utilidad!!

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies