ホームページ >バックエンド開発 >Python チュートリアル >行数が部分数で割り切れない場合、大きな Pandas DataFrame を等しい部分に分割するにはどうすればよいですか?
大規模な Pandas データフレームを等しい部分に分割する
Pandas で大規模なデータセットを操作する場合、多くの場合、それらを小さなチャンクに分割する必要があります。処理または分析。データフレームを分割するために一般的に使用される方法の 1 つは np.split です。これは、指定された軸に沿ってデータを同じ数の配列に分散します。ただし、このメソッドを使用して不均等な数の行を分割しようとすると、ValueError が発生する可能性があります。
np.array_split を使用した代替アプローチ
この問題を解決するには、次の使用を検討してください。代わりに np.array_split を使用します。この関数では、次の Python コードに示すように、データフレームを不均等に分割できます。
<code class="python">import pandas as pd import numpy as np df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'], 'B' : ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'], 'C' : np.random.randn(8), 'D' : np.random.randn(8)}) print(df) split_data = np.array_split(df, 4) for part in split_data: print(part)</code>
このコードの出力は、データフレームが 4 つの等しい部分に分割されていることを示しています。
A B C D 0 foo one -0.174067 -0.608579 1 bar one -0.860386 -1.210518 2 foo two 0.614102 1.689837 3 bar three -0.284792 -1.071160 4 foo two 0.843610 0.803712 5 bar two -1.514722 0.870861 6 foo one 0.131529 -0.968151 7 foo three -1.002946 -0.257468 A B C D 0 foo one -0.174067 -0.608579 1 bar one -0.860386 -1.210518 2 foo two 0.614102 1.689837 3 bar three -0.284792 -1.071160 4 foo two 0.843610 0.803712 5 bar two -1.514722 0.870861 A B C D 0 foo one 0.131529 -0.968151 1 foo three -1.002946 -0.257468 A B C D 0 bar one -0.860386 -1.210518 1 foo two 0.614102 1.689837 2 bar three -0.284792 -1.071160 3 foo two 0.843610 0.803712 4 bar two -1.514722 0.870861
np.array_split を使用すると、合計数に関係なく、データフレーム行が均等に分散されます。これは、さらなる処理のために大規模なデータセットを管理可能なチャンクに分割するための便利な方法を提供します。
以上が行数が部分数で割り切れない場合、大きな Pandas DataFrame を等しい部分に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。