パンダ 2.0 が登場

Feb 27 2023
Python Pandas 2.0 がリリースされたばかりです。追加および改善されたものは次のとおりです (これにより、多くのことが変わります) データ業界 (データ エンジニアリング/サイエンス/ML) で働いている場合は、Pandas が特にデータについて何を話しているのかをすでにご存知かもしれませんエンジニアリング部門では、Panda は大規模なデータセットを操作する際に最適なパフォーマンスが得られないため、かつては多くの嫌悪感を抱いていました。

Python Pandas 2.0 がリリースされたばかりです。追加および改良されたものは次のとおりです (これにより多くのことが変わります)

アンスプラッシュのパスカル・ミュラーによる写真

データ業界 (データ エンジニアリング/サイエンス/ML) で働いている場合は、Pandas が何であるかをすでに知っているかもしれません。

特にデータ エンジニアリングについて言えば、Panda は大規模なデータセットを操作する際に最適なパフォーマンスが得られないため、かつては多くの嫌われ者でした。

Pandas 2.0 はこの方向に向けた一歩であり、上位 3 つの機能は次のとおりです。

より高速でメモリ効率の高い操作

彼らはバックエンドに pyarrow のサポートを追加しました。

pyarrow バックエンドは、pandas 2.0 の新機能で、ユーザーは、pandas DataFrames および Series の代替データ ストレージ形式として Apache Arrow を使用できるようになります。

これは、pandas 2.0 で Parquet ファイルの読み取りまたは書き込みを行う場合、デフォルトで pyarrow を使用してデータを処理することを意味し、その結果、操作がより高速でメモリ効率が高くなります。

パイアローとは何ですか?
Pyarrow は、列指向メモリ形式を提供するライブラリです。これは、読み取りと並列処理を容易にするデータの編成方法です。

要約すると、pandas 2.0 で pyarrow バックエンドを使用すると、特に大規模なデータセットを操作する場合に、より高速でメモリ効率の高いデータ操作が可能になります。

PyArrow の裏付け

コピーオンライトの最適化

Spark とコードの実行方法に似ている

これは、大規模なデータセットを操作するときにパフォーマンスを向上させ、メモリ使用量を削減するためにパンダで使用されるメモリ最適化手法です。

DataFrame や Series などの pandas オブジェクトのコピーを作成すると、データの新しいコピーをすぐに作成するのではなく、pandas は元のデータへの参照を作成し、データを変更するまで新しいコピーの作成を延期するという考えです。何らかの形でデータ化。

これは、同じデータのコピーが複数ある場合、そのうちの 1 つに変更を加えるまで、それらはすべて同じメモリを参照できることを意味します。これにより、データの不必要なコピーを作成する必要がなくなるため、メモリ使用量が大幅に削減され、パフォーマンスが向上します。

全体として、コピーオンライトは、より少ないメモリでより効率的に大規模なデータセットを操作できる強力な最適化手法です。

コピーオンライト

インデックスに NumPy 数値型を保持できるようになりました

概要: インデックスの改善、アクセスの高速化、計算の高速化

詳細:
Pandas 2.0 では、Index が int8、int16、int32、int64、uint8、uint16、uint32、uint64、float32、float64 を含む任意の NumPy 数値 dtype を保持できるようになります。

以前は、int64、uint64、および float64 型のみがサポートされていました。

その結果、以前は 64 ビットのインデックスを作成していた操作で、32 ビットのインデックスなど、より低いビット サイズのインデックスを作成できるようになりました。

NumPy インデックス

TL;DR
1. backed に pyarrow が追加され、操作がより高速になり、メモリ効率が向上しました。
2. コピーオンライトの最適化: Spark とコードの実行方法に似ています。
3. インデックスが NumPy 数値型を保持できるようになり、操作が高速化されます。

これらの機能に関するチュートリアルを Python for Data Engineering コースにも追加する予定です。

データエンジニアリングのための Python についてすべてを学びたい場合は、チェックしてください。

https://learn.datawithdarshil.com/courses/Python-for-Data-Engineering