私は11,000行と10個の列を持つスプレッドシートを持っています。私は選択された列で各行をコピーしようとしており、行ごとに追加情報を追加してtxtに出力します。openpyxl pythonで非常に大きなファイルを扱う
残念ながら、私は実際にパフォーマンスの問題が悪化しています。ファイルは100行後にスラッグしてプロセッサを強制終了します。これをスピードアップする方法や、より良い方法論を使用する方法はありますか?
for i in range(probeStart, lastRow+1):
dataRow =""
for j in range (1,col+2):
dataRow = dataRow + str(sheet.cell(row=i, column=j).value) + "\t"
sigP = db.get(str(sheet.cell(row= i, column=1).value), "notfound") #my additional information
a = str(sheet.cell(row = i, column = max_column-1).value) +"\t"
b = str(sheet.cell(row = i, column = max_column).value) + "\t"
string1 = dataRow + a + b + sigP + "\n"
w.write(string1)
@Rahul?パフォーマンスを改善するためにどのような機能を使用する必要がありますか? – theMicroGirl
ここでパンダは必要ないと思う。 openpyxlで十分です。問題は 'db.get'だと思います – Rahul
' ws.cell() 'を繰り返し使用するとコード内で問題が発生し、openpyxlはワークシートを何度も何度も再解析します。 –