ホームページ  >  記事  >  バックエンド開発  >  行数が部分数で割り切れない場合、大きな Pandas DataFrame を等しい部分に分割するにはどうすればよいですか?

行数が部分数で割り切れない場合、大きな Pandas DataFrame を等しい部分に分割するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-28 03:29:30854ブラウズ

How do I split a large Pandas DataFrame into equal parts when the number of rows is not divisible by the number of parts?

大規模な 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。