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

行数が均等に割り切れない場合に、大きな Pandas データフレームを複数の部分に分割するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-27 04:13:30715ブラウズ

How to Split a Large Pandas Dataframe into Multiple Parts When the Number of Rows is Not Evenly Divisible?

大規模な Pandas データフレームを複数の部分に分割する

大規模なデータセットを操作する場合、多くの場合、データセットをより小さな管理可能なチャンクに分割することが必要になります。これにより、パフォーマンスが向上し、メモリ使用率が向上し、並列処理が容易になります。この記事では、np.split() を使用して大きなパンダ データフレームを分割しようとしたときに発生した問題に対処します。

問題を理解する

提供されたコードスニペットは np.split() を使用してデータフレームを 4 つのサブグループに分割しました。ただし、除算が等しくないため、ValueError が発生しました。このエラーは、データフレーム内の要素の数が必要な分割数で割り切れない場合に発生します。

解決策: np.array_split() を使用する

解決するにはこの課題では、np.split() のより汎用性の高い代替手段である np.array_split() を採用します。ドキュメントに記載されているように、array_split() では不等分割が可能であり、今回のような状況に適しています。

実装

np を使用した Python コード例を次に示します。 array_split() を使用して、データフレームを 4 つの部分に分割します。

<code class="python">import pandas as pd
import numpy as np

# Create a sample dataframe
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)})

# Split the dataframe into four groups using array_split
groups = np.array_split(df, 3)

# Print the split groups
for group in groups:
    print(group)</code>

これにより、データフレームが 3 つのほぼ同じサイズのグループに効果的に分割されます。各グループは独立してアクセスして処理できるため、不平等な分割という最初の課題に対処できます。

以上が行数が均等に割り切れない場合に、大きな Pandas データフレームを複数の部分に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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