私はPythonとプログラミング全般にまったく慣れていませんが、Pythonで約700万行を含むタブ区切りの.txtファイルに対して「スライディングウィンドウ」計算を実行しようとしています。スライディングウィンドウとは、たとえば50,000行で計算を実行し、その数を報告してから、たとえば10,000行上に移動し、さらに50,000行で同じ計算を実行することを意味します。計算と「スライディングウィンドウ」が正しく機能しており、データの小さなサブセットでテストするとうまく機能します。ただし、データセット全体に対してプログラムを実行しようとすると、非常に遅くなります(現在、約40時間実行しています)。計算は非常に単純なので、これほど長くかかることはないと思います。
私が今.txtファイルを読んでいる方法は、csv.DictReaderモジュールを使用することです。私のコードは次のとおりです。
file1='/Users/Shared/SmallSetbee.txt'
newfile=open(file1, 'rb')
reader=csv.DictReader((line.replace('\0','') for line in newfile), delimiter="\t")
これにより、一度に700万行すべてから辞書が作成されると思います。これが、大きなファイルの場合に非常に遅くなる理由である可能性があると思います。
一度にデータの「チャンク」または「ウィンドウ」に対して計算を実行することにのみ関心があるので、一度に指定された行のみを読み取り、計算を実行してから、新しい指定された「指定された行のチャンク」または「ウィンドウ」?