gpt4 book ai didi

python-3.x - 从 csv 文件向 python-docx 添加表的速度非常慢

转载 作者:行者123 更新时间:2023-12-04 16:40:11 35 4
gpt4 key购买 nike

我必须在 docx word 文档中从大约 1500 行和 9 列(75 页)的 CSV 文件中添加一个表格。使用 python-docx。
我尝试了不同的方法,用 Pandas 读取 csv 或直接打开 de csv 文件,按照我选择的方式独立完成工作大约需要 150 分钟
我的问题是这是否可能是正常行为,或者是否存在任何其他方式来改进此任务。
我正在使用这个 for 循环来读取几个 cvs 文件并以表格格式解析它

        for toTAB in listBRUTO:
df= pd.read_csv(toTAB)

# add a table to the end and create a reference variable
# extra row is so we can add the header row
t = doc.add_table(df.shape[0]+1, df.shape[1])
t.style = 'LightShading-Accent1' # border


# add the header rows.
for j in range(df.shape[-1]):
t.cell(0,j).text = df.columns[j]

# add the rest of the data frame
for i in range(df.shape[0]):
for j in range(df.shape[-1]):
t.cell(i+1,j).text = str(df.values[i,j])

#TABLE Format
for row in t.rows:
for cell in row.cells:
paragraphs = cell.paragraphs
for paragraph in paragraphs:
for run in paragraph.runs:
font = run.font
font.name = 'Calibri'
font.size= Pt(7)


doc.add_page_break()
doc.save('blabla.docx')
提前致谢

最佳答案

您需要尽量减少对 table.cell() 的调用次数。 .由于单元格合并的工作方式,这些昂贵的操作在紧密循环中执行时确实会增加。
我将从重构这个块开始,看看会产生多少改进:

# --- add the rest of the data frame ---
for i in range(df.shape[0]):
for j, cell in enumerate(table.rows[i + 1].cells):
cell.text = str(df.values[i, j])

关于python-3.x - 从 csv 文件向 python-docx 添加表的速度非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62268813/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com