Сравнение значений ячеек / оптимизация кода

import openpyxl
from openpyxl import load_workbook

wb = load_workbook(filename="index.xlsx")

print(wb.sheetnames)

wb.active = 0

sheet = wb.active
a = (sheet['A1'].value)
b = (sheet['B1'].value)
c = (sheet['C1'].value)
d = (sheet['D1'].value)
e = (sheet['E1'].value)
f = (sheet['F1'].value)
g = (sheet['G1'].value)
h = (sheet['H1'].value)
i = (sheet['I1'].value)
j = (sheet['J1'].value)

l1 = sheet['L1']
if a < b < c < d < e < f < g < h < i < j:
    l1.value = "1"
else:
    l1.value = "0"


wb.save("D:\\Works\\Python\\Piotrowski index\\index.xlsx")

Написал код. Искал различные варианты оптимизации, т.к. нужно будет сравнивать минимум 90 ячеек.

Как более оптимально выполнить сранение ячеек?


Ответы (1 шт):

Автор решения: MaxU

Пример с использованием модуля Pandas:

Пусть у нас есть сдедующий Excel файл:

введите сюда описание изображения

решение:

import pandas as pd   #  pip install pandas

filename = "index.xlsx"
df = pd.read_excel(filename, header=None)

df["new"] = df.diff(axis=1).fillna(1).gt(0).all(axis=1).astype(int)

df.to_excel(r"c:\temp\result.xlsx", header=False, index=False)

результат:

введите сюда описание изображения

→ Ссылка