У меня есть файл Excel XLSX (форма: 1180,6), которым я пытаюсь манипулировать. Практически создавая пустую строку для каждой второй строки и вставляя в нее данные, просто переупорядочив данные. Код работает нормально, когда я пробую всего 10 строк данных, но не работает, когда я запускаю все 1180 строк. Он также работает долго, прежде чем выплевывать те же необработанные данные. Разве openpyxl не создан для этого? Просто интересно, есть ли более эффективный способ сделать это. Вот мой код Ниже приведен код данных после использования нескольких строк, что мне и нужно, но не для всего набора данных.
%%time
import pandas as pd
import numpy as np
from openpyxl import load_workbook
import os
xls = pd.ExcelFile('input.xlsx')
df = xls.parse(0)
wb = load_workbook('input.xlsx')
#print(wb.sheetnames)
sh1=wb['Sheet1']
df.head()
#print(sh1.max_column)
for y in range(2,(sh1.max_row+1)*2,2):
sh1.insert_rows(y)
wb.save('output.xlsx')
m=3
for k in range(2,sh1.max_row+1,2):
sh1.cell(row=k,column=1).value = sh1.cell(row=m,column=1).value # copy from one cell and paste
sh1.cell(row=k,column=2).value = sh1.cell(row=m,column=3).value
sh1.cell(row=k,column=3).value = sh1.cell(row=m,column=2).value
sh1.cell(row=k,column=4).value = 'A'
sh1.cell(row=m,column=4).value = 'H'
sh1.cell(row=k,column=5).value = sh1.cell(row=m,column=6).value
sh1.cell(row=k,column=6).value = sh1.cell(row=m,column=5).value
m+=2
wb.save('output.xlsx')
xls = pd.ExcelFile('output.xlsx')
df1 = xls.parse(0)
wb1 = load_workbook('output.xlsx')
df1