1ブック内複数のシートがあり、
その中の特定の名前が付いたシート内に
一定の間隔で並んだ行列分のデータを取り出し処理をしています。
一定の間隔で並んだ行列分(50×50)のデータを取り出したら(以降【ブロック取出し】と記述します)
さらに、53行目に移動し同じくブロック取出しし
その数千行ほど行います。
現在、openpyxlで対応していますが
その場合、ブロック取出しする際、1セルずつForで行列を1つずつ取り出しています。
これで既にForをネストしているのですが
さらに、シート内別のシートで同じ作業を行う必要があり
もう一段階Forをネストしています。
Pythonはステートメントのネストで極端に速度が下がるという記事を見たことがあります。
効率が悪いので、改善をしたいのですが、
Range(スライス)単位で取り出すいい方法はありますでしょうか。
調べた結果では、pandasでブックを取込み、シートを配列に取り込んで、
スライスで取り出すという方法を知ることが出来ました。
また、処理に使うのは.xlsxと.xlsの2種類のブックがあり
xlrdもimportしてると非常に非効率的であり
最終的にExe化するのでimportする量も減らしたいと思っています。
※すみません、pandasで処理するときxlrdを使うようです。
pandasでのみ対応するのが一番効率的でしょうか。
ご教授ください。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー