Aplicación de ejemplo de Python importar Excel para completar un cálculo simple

No fui a casa durante las vacaciones de verano y se quedó en la escuela para estudiar. Al mediodía del día en que salieron las notas finales, ¿el consejero de repente dijo algo?
Inserte la descripción de la imagen aquí
Al instante comprendí que se había vuelto a hacer algo. Efectivamente, me envió las calificaciones de toda la calificación y me pidió que calcule la calificación promedio ponderada (¡más de diez mil datos ahhhhhhhhhhhhhhhhhhhhhhhh!) . Así que esta vez le pedí al grandullón Gyg que averiguara si podía usar Excel para calcular, pero el grandullón hizo una operación de comida y lo calculó directamente con Java. Esta vez me sentí realmente cómodo con el ladrón. Simplemente verifiqué algunos datos y descubrí que, La precisión no es muy precisa. Debido a que la evaluación es necesaria, renuncié a los datos para encontrar otra salida; originalmente planeé encontrar algunas personas y calcularlo directamente de forma manual, pero esto es realmente una tontería, lo siento por mi especialidad y me quedo en la escuela. He aprendido mucho sobre Python en estos días, así que quiero probar si puedo aprender de los grandes y escribir algo similar. No quería que mi novato tuviera éxito. (Después de hablar tanto, hablemos de los problemas que encontré en el proceso)

Descripción: Calificación promedio ponderada = Σ (créditos del curso * calificaciones del curso) / (Σ créditos del curso)

En primer lugar, quiero simplemente procesar la hoja de cálculo de Excel y usar la función incorporada de Excel para calcularla (课程学分*课程成绩). Pero cada vez, el resultado de multiplicar los datos es inconsistente con las expectativas. Incluso dudo si la función incorporada de Excel es picante o no. También sospecho que le prestaré atención ¿Una persona que envía habilidades de Excel (lo llamamos un poco D) también es un pollo picante? No se pueden utilizar todos los métodos, y luego todo tipo de dudas sobre la vida, todo tipo de ayudas. Finalmente, el jefe de gyg descubrió el tipo de datos de créditos y calificaciones al calcular con Java 不是数字,不是数字,不是数字啊(realmente un poco loco)

Inserte la descripción de la imagen aquí

Después de convertir los datos en números, descubrí que las funciones integradas de Excel son realmente poderosas. La D pequeña es realmente un buen lote (tono entrecortado). Primero, agregué una línea en blanco debajo de las calificaciones de cada estudiante y luego pasé la técnica de D pequeña , Básicamente es un clic para encontrar todos los estudiantes Σ(课程学分*课程成绩)y todos los estudiantes, Σ课程学分y luego solo necesita dividir los dos números. ! ! ! ¡pero! ! ! Los datos escritos se encuentran dispersos bajo los puntajes de cada estudiante y no se pueden calcular con un clic a través de Excel.

Inserte la descripción de la imagen aquí

Desde entonces, Python entró en escena, Baidu una .xlsxbiblioteca de terceros para manipular archivos , elegí uno con nombre openpyxly luego escribí el código de Python:

Primero, descargué la openpyxlbiblioteca
La idea es escribir código: Debido al Σ(课程学分*课程成绩)y Σ课程学分frente a una celda vacía, así que quería ser calculado mediante la determinación de la primera celda está vacía, después de algunos intentos, se ha encontrado que no parece (pensar en ello ahora, parece olvidar a escribir rowvuelta .valueEsto llevó a la incapacidad de juzgar (solo adivinar, no intentarlo)), así que utilicé la técnica de la D pequeña, más el método de Baidu de llenar varias celdas seleccionadas al mismo tiempo, que es un clic para llenar la celda vacía con un número (esperado). Sin embargo, todavía 文本类型hay una adición.Cuando estaba juzgando, solo había una calificación de un compañero de clase, awsl. Mi mente insatisfecha todavía estaba tropezando con esta, y luego estaba pensando, ¿debería tener una por una? ¿Cambiar el tipo de datos? Por supuesto imposible. Dado que hay tipos numéricos y de texto, cambiaré las ifcondiciones. Ya sea texto ( '1') o número ( 1) (siempre que no sea un nombre), contaré. El siguiente es el código Python, que en realidad es muy poco Arriba.
from openpyxl import load_workbook  #调用

# 打开Excel文件
wb = load_workbook(filename='really.xlsx', data_only=True)
ws = wb.active

for row in ws.rows:
        if row[0].value in[ '1', 1]:
                print(row[2].value/row[1].value)

El código está escrito y listo para ejecutar la prueba, pero no puede encontrar el .xlsxarchivo preparado . Es realmente un camino lleno de baches. Luego lo baidu de nuevo. El script de Python correspondiente debe .xlsxcolocarse en el mismo directorio que el archivo (lo puse en Después de resolver esto, comencé a probar algunos de los datos que saqué y finalmente lo logré, luego, sin decir nada, comencé a contar los resultados de toda la calificación. ¿Efecto de imagen?

Inserte la descripción de la imagen aquí

Puedo usarlo cuando lo saco, ah ja ja ja ja (chupando), y luego simplemente organizar, separar cada clase y listo

Postdata: Debido a que esto se puede pegar directamente en el shell, no aprendí a escribir los datos en el .xlsxarchivo, pero esto ya es muy rápido (swish swish), no puedo contener la alegría jejeje, después de este tiempo, Tengo una comprensión más profunda de que el conocimiento es poder, ¡tengo que seguir adelante! ! ! (Para conmemorar la primera programación para resolver problemas de la vida)

Supongo que te gusta

Origin blog.csdn.net/weixin_43716048/article/details/96317667
Recomendado
Clasificación