エコシステム

データ準備、分析、視覚化における特定のニーズに対応するために、pandasの上に構築されたパッケージが増えています。これは、pandasがユーザーのデータタスクを処理するのに役立つだけでなく、開発者が強力でより焦点を絞ったデータツールを構築するためのより良い出発点を提供することを意味するため、奨励すべきことです。pandasの機能を補完するライブラリの作成により、pandasの開発を元の要件に集中させることができます。

これは、PyData空間でツールを提供するためにpandas上に構築されたプロジェクトのコミュニティが維持するリストです。pandasのコア開発チームは、このリストにある特定のプロジェクトを必ずしも推奨しているわけではなく、特定のライブラリのメンテナンス状況について知識があるわけでもありません。

pandasに依存するプロジェクトのより完全なリストについては、libraries.ioのpandasの使用ページまたはpypiでpandasを検索してください。

ユーザーがこれらのプロジェクトを見つけやすくしたいと考えています。このリストに載せるべきだと思われる他の重要なプロジェクトをご存じでしたら、お知らせください。

統計と機械学習

Statsmodels

Statsmodelsは、Pythonの「統計および計量経済学ライブラリ」として著名であり、pandasと長年の特別な関係があります。Statsmodelsは、pandasの範囲外である強力な統計、計量経済学、分析、モデリング機能を提供します。Statsmodelsは、計算の基礎となるデータコンテナとしてpandasオブジェクトを利用します。

skrub

Skrubはデータフレームでの機械学習を容易にします。pandasとscikit-learnなどを橋渡しします。特に、データフレームから特徴量を構築するのを容易にします。

Featuretools

Featuretoolsは、pandasの上に構築された自動特徴量エンジニアリングのためのPythonライブラリです。再利用可能な特徴量エンジニアリングの「プリミティブ」を使用して、時間的およびリレーショナルなデータセットを機械学習用の特徴量行列に変換するのに優れています。ユーザーはPythonで独自のプリミティブを提供し、コミュニティの他のメンバーと共有することができます。

Compose

Composeは、データのラベル付けと予測エンジニアリングのための機械学習ツールです。予測問題をパラメータ化し、時間駆動型のリレーショナルデータを教師あり学習に使用できるカットオフ時間を持つターゲット値に変換することで、ラベル付けプロセスを構造化できます。

STUMPY

STUMPYは、最新の時系列分析のための強力でスケーラブルなPythonライブラリです。その核となるのは、STUMPYが「マトリックスプロファイル」と呼ばれるものを効率的に計算することであり、これはさまざまな時系列データマイニングタスクに使用できます。

可視化

Altair

Altairは、Python用の宣言型統計可視化ライブラリです。Altairを使用すると、データの理解とその意味に費やす時間を増やすことができます。AltairのAPIはシンプルで使いやすく、一貫性があり、強力なVega-Lite JSON仕様の上に構築されています。このエレガントなシンプルさにより、最小限のコードで美しく効果的な視覚化が生成されます。AltairはPandas DataFramesで動作します。

Bokeh

Bokehは、最新のWebテクノロジーをネイティブに利用する大規模データセット向けのPythonインタラクティブ可視化ライブラリです。その目標は、Protovis/D3のスタイルで斬新なグラフィックをエレガントかつ簡潔に構築することであり、同時に大規模データに対する高性能なインタラクティブ性をシンクライアントに提供することです。

Pandas-Bokehは、BokehのハイレベルAPIを提供し、以下のようにネイティブのPandasプロットバックエンドとしてロードできます。

pd.set_option("plotting.backend", "pandas_bokeh")

matplotlibのプロットバックエンドと非常によく似ていますが、インタラクティブなWebベースのチャートとマップを提供します。

pygwalker

PyGWalkerは、Graphic Walkerをベースに構築されたインタラクティブなデータ視覚化および探索的データ分析ツールであり、視覚化、クリーニング、注釈のワークフローをサポートしています。

pygwalkerは、インタラクティブに作成されたチャートをGraphic-WalkerおよびVega-Lite JSONに保存できます。

import pygwalker as pyg
pyg.walk(df)

seaborn

Seabornは、matplotlibに基づいたPythonの可視化ライブラリです。魅力的で統計的なグラフィックを作成するための高レベルでデータセット指向のインターフェースを提供します。seabornのプロット関数はpandasオブジェクトを理解し、内部でpandasのグループ化操作を利用して、複雑な視覚化を簡潔に指定できます。Seabornはmatplotlibとpandasを超えて、プロット中に統計的推定を実行したり、観測値全体を集計したり、統計モデルの適合性を視覚化してデータセットのパターンを強調したりするオプションも提供します。

import seaborn as sns
sns.set_theme()

plotnine

Hadley Wickhamのggplot2は、R言語の基礎となる探索的視覚化パッケージです。「The Grammar of Graphics」に基づいており、あらゆる種類のデータのオーダーメイドのプロットを生成するための強力で宣言的かつ非常に一般的な方法を提供します。他の言語へのさまざまな実装が利用可能です。Pythonユーザーにとって良い実装はhas2k1/plotnineです。

IPython Vega

IPython VegaVegaを利用して、Jupyter Notebook内でプロットを作成します。

Plotly

Plotlyの Python APIは、インタラクティブな図とWebでの共有を可能にします。マップ、2D、3D、ライブストリーミンググラフはWebGLとD3.jsでレンダリングされます。このライブラリは、pandas DataFrameからの直接プロットとクラウドベースのコラボレーションをサポートしています。matplotlib、Python用ggplot、およびSeabornのユーザーは、図をインタラクティブなWebベースのプロットに変換できます。プロットはIPython Notebooksで描画したり、RまたはMATLABで編集したり、GUIで変更したり、アプリやダッシュボードに埋め込んだりできます。Plotlyは無制限の共有が無料で、プライベート使用のためにクラウド、オフライン、またはオンプレミスのアカウントがあります。

Lux

Luxは、視覚的なデータ探索プロセスを自動化することで、データを使った迅速かつ簡単な実験を容易にするPythonライブラリです。Luxを使用するには、pandasと一緒にインポートを追加するだけです。

import lux
import pandas as pd

df = pd.read_csv("data.csv")
df  # discover interesting insights!

データフレームを出力すると、Luxはデータフレーム内の興味深い傾向やパターンを強調する一連の視覚化を自動的に推奨します。ユーザーは既存のpandasコマンドをコードを変更せずに利用でき、同時にpandasデータ構造(例:DataFrame、Series、Index)を視覚化できます。Luxはまた、コードレベルで考えることなくAltair、matplotlib、またはVega-Liteの視覚化を作成できる強力で直感的な言語を提供します。

D-Tale

D-Taleは、pandasデータ構造を視覚化するための軽量なWebクライアントです。多数のpandas機能(クエリ、ソート、記述、相関など)のラッパーとして機能する豊富なスプレッドシートスタイルのグリッドを提供し、ユーザーはデータをすばやく操作できます。また、Plotly Dashを使用したインタラクティブなチャートビルダーもあり、ユーザーは優れたポータブルな視覚化を構築できます。D-Taleは次のコマンドで呼び出すことができます。

import dtale

dtale.show(df)

D-Taleは、Jupyterノートブック、Pythonターミナル、Kaggle、Google Colabとシームレスに統合します。グリッドのデモをいくつか紹介します。

hvplot

hvPlotは、HoloViews上に構築されたPyDataエコシステム用のハイレベルなプロットAPIです。以下のようにネイティブのpandasプロットバックエンドとしてロードできます。

pd.set_option("plotting.backend", "hvplot")

IDE

IPython

IPythonは、インタラクティブなコマンドシェルと分散コンピューティング環境です。IPythonのタブ補完は、PandasメソッドとDataFrameの列などの属性でも機能します。

Jupyter Notebook / Jupyter Lab

Jupyter Notebookは、Jupyter Notebookを作成するためのウェブアプリケーションです。Jupyter Notebookは、コード、テキスト、数式、プロット、リッチメディアを含む入力/出力セルの順序付きリストを含むJSONドキュメントです。Jupyter Notebookは、ウェブインターフェースの「Download As」とシェルでの`jupyter convert`を介して、いくつかのオープン標準出力形式(HTML、HTMLプレゼンテーションスライド、LaTeX、PDF、ReStructuredText、Markdown、Python)に変換できます。

Pandas DataFramesは`_repr_html_`および`_repr_latex`メソッドを実装しており、これらはJupyter Notebookで(省略された)HTMLまたはLaTeXテーブルを表示するために利用されます。LaTeX出力は適切にエスケープされます。(注:HTMLテーブルは、非HTMLのJupyter出力形式と互換性がある場合とない場合があります。)

pandasの`display.`設定については、オプションと設定を参照してください。

Spyder

Spyderは、PyQtベースのクロスプラットフォームIDEであり、ソフトウェア開発ツールの編集、分析、デバッグ、プロファイリング機能と、MATLABやRstudioのような科学環境のデータ探索、インタラクティブな実行、詳細な検査、豊富な視覚化機能を兼ね備えています。

その変数エクスプローラーを使用すると、ユーザーはpandasのIndexSeries、およびDataFrameオブジェクトを「スプレッドシート」のように表示、操作、編集できます。これには、値のコピーと変更、ソート、「ヒートマップ」の表示、データ型の変換などが含まれます。pandasオブジェクトは、名前の変更、複製、新しい列の追加、クリップボードとのコピー/ペースト(TSVとして)、ファイルへの保存/読み込みも可能です。Spyderはまた、洗練されたインポートウィザードを介して、さまざまなプレーンテキストおよびバイナリファイルまたはクリップボードから新しいpandas DataFrameにデータをインポートすることもできます。

ほとんどのpandasクラス、メソッド、およびデータ属性は、SpyderのエディターIPythonコンソールで自動補完でき、Spyderのヘルプペインは、Sphinxを使用してpandasオブジェクトに関するNumpydocドキュメントを自動的かつオンデマンドでリッチテキストで取得およびレンダリングできます。

marimo

marimoは、PythonとSQL用のリアクティブノートブックであり、データフレームでの作業時の生産性を向上させます。データの操作と視覚化をよりインタラクティブで楽しいものにするためのいくつかの機能を提供します。

  1. リッチでインタラクティブな表示: marimoは、pandasデータフレームを、フィルタリングとソート機能を備えたインタラクティブなテーブルまたはチャートで表示できます。
  2. データ選択: ユーザーはテーブルまたはpandasベースのプロットでデータを選択でき、選択内容はpandasデータフレームとして自動的にPythonに送信されます。
  3. ノーコード変換: ユーザーはGUIを使用して、コードを記述することなく、pandasデータフレームをインタラクティブに変換できます。生成されたコードは、ノートブックにコピーアンドペーストできます。
  4. カスタムフィルター: marimoは、スライダーやドロップダウンなどのUI要素を使用して、pandasベースのフィルターを作成できます。
  5. データセットエクスプローラー: marimoは、ノートブック内のすべてのデータフレームを自動的に検出し、表示するため、ユーザーはデータをインタラクティブに探索および視覚化できます。
  6. SQL統合: marimoは、メモリ内の任意のpandasデータフレームに対してSQLクエリを記述できます。

API

pandas-datareader

pandas-datareaderは、pandas用のリモートデータアクセスライブラリです(PyPI:pandas-datareader)。これは、pandas.io.dataおよびpandas.io.wbにあった機能に基づいていますが、v0.19で分離されました。詳細はpandas-datareader docsを参照してください。

以下のデータフィードが利用可能です。

pandaSDMX

pandaSDMXは、統計局、中央銀行、国際機関などで広く使用されているISO標準であるSDMX 2.1で公開されている統計データとメタデータを取得するためのライブラリです。pandaSDMXは、データフロー、コードリスト、データ構造定義などのデータセットおよび関連する構造メタデータをpandas SeriesまたはMultiIndexed DataFrameとして公開できます。

fredapi

fredapiは、セントルイス連邦準備銀行が提供する連邦準備制度経済データ (FRED) へのPythonインターフェースです。FREDデータベースと、時点データ(つまり履歴データの改訂)を含むALFREDデータベースの両方で動作します。fredapiは、FRED HTTP APIへのPythonラッパーを提供し、ALFREDからの時点データを解析および分析するためのいくつかの便利なメソッドも提供します。fredapiはpandasを使用し、SeriesまたはDataFrameでデータを返します。このモジュールには、FREDウェブサイトで無料で取得できるFRED APIキーが必要です。

ドメイン固有

Geopandas

Geopandasは、幾何学的操作をサポートする地理情報を組み込むためにpandasデータオブジェクトを拡張します。マップや地理座標を扱う作業があり、pandasを好む場合は、Geopandasを詳しく調べるべきです。

gurobipy-pandas

gurobipy-pandasは、pandasとgurobipyを接続するための便利なアクセサーAPIを提供します。これにより、ユーザーはDataFrameとSeriesに保存されたデータから数理最適化モデルをより簡単かつ効率的に構築し、pandasオブジェクトとして直接解を読み戻すことができます。

staircase

staircaseは、pandasとnumpyをベースに構築された、数学的な階段関数をモデル化および操作するためのデータ分析パッケージです。実数、datetime、timedeltaドメインで定義された階段関数に対して、豊富な種類の算術演算、関係演算、論理演算、統計演算、および集計を提供します。

xarray

xarrayは、コアpandasデータ構造のN次元バリアントを提供することで、pandasのラベル付きデータ機能を物理科学にもたらします。pandasが得意とする表形式データではなく、多次元配列の分析のためのpandasライクでpandas互換のツールキットを提供することを目指しています。

IO

NTV-pandas

NTV-pandasは、pandasが直接サポートするよりも多くのデータ型を持つJSONコンバーターを提供します。

以下のデータ型をサポートしています。

インターフェースは常に2つの形式(JSON-NTVとJSON-TableSchema)で可逆的(変換の往復)です。

import ntv_pandas as npd

jsn = df.npd.to_json(table=False)  # save df as a JSON-value (format Table Schema if table is True else format NTV )
df  = npd.read_json(jsn)  # load a JSON-value as a `DataFrame`

df.equals(npd.read_json(df.npd.to_json(df)))  # `True` in any case, whether `table=True` or not

BCPandas

BCPandasは、pandasからMicrosoft SQL Serverへの高性能な書き込みを提供し、ネイティブのdf.to_sqlメソッドのパフォーマンスをはるかに上回ります。内部的にはMicrosoftのBCPユーティリティを使用しますが、その複雑さはエンドユーザーから完全に抽象化されています。厳密にテストされており、df.to_sqlの完全な代替品です。

Deltalake

Deltalake Pythonパッケージを使用すると、SparkやJVMを使用することなく、PythonでDelta Lakeに保存されているテーブルにネイティブにアクセスできます。任意のDeltaテーブルをPandasデータフレームに変換するdelta_table.to_pyarrow_table().to_pandas()メソッドを提供します。

pandas-gbq

pandas-gbqは、Google BigQueryとの間で高性能な読み書きを提供します。以前(バージョン2.2.0より前)は、これらのメソッドはpandas.read_gbqおよびDataFrame.to_gbqとして公開されていました。代わりに、pandas_gbq.read_gbqおよびpandas_gbq.to_gbqを使用してください。

ArcticDB

ArcticDB は、Python データサイエンスエコシステム用に設計されたサーバーレス DataFrame データベースエンジンです。ArcticDB を使用すると、pandas DataFrame を大規模に保存、取得、処理できます。これはオブジェクトストレージ用に設計されたストレージエンジンであり、LMDB を使用したローカルディスクストレージもサポートしています。ArcticDB は、実行中の Python 環境とオブジェクトストレージへのアクセス以外にインフラストラクチャを必要とせず、数秒でインストールできます。完全なドキュメントはこちらをご覧ください。

ArcticDB 用語

ArcticDB は、DataFrame をスケーラブルかつ効率的に管理および取得する方法を提供するように構造化されており、いくつかの主要なコンポーネントに整理されています。

インストール

インストールするには、次を実行するだけです。

pip install arcticdb

開始するには、ArcticDB をインポートしてインスタンス化します。

import arcticdb as adb
import numpy as np
import pandas as pd
# this will set up the storage using the local file system
arctic = adb.Arctic("lmdb://arcticdb_test")

注: ArcticDB は、AWS を含む任意の S3 API 互換ストレージをサポートしています。ArcticDB は Azure Blob ストレージもサポートしています。
ArcticDBは、ローカル/ファイルベースのストレージとしてLMDBもサポートしています。LMDBを使用するには、URIとしてLMDBパスを渡します: adb.Arctic('lmdb://path/to/desired/database')

ライブラリのセットアップ

ArcticDB は、多数(潜在的に数百万)のテーブルを保存することを目指しています。個々のテーブル (DataFrame) はシンボルと呼ばれ、ライブラリと呼ばれるコレクションに保存されます。単一のライブラリには多数のシンボルを保存できます。ライブラリは使用する前に初期化する必要があります。

lib = arctic.get_library('sample', create_if_missing=True)

ArcticDBへのデータ書き込み

ライブラリがセットアップされたので、データの読み書きに進むことができます。ArcticDBには、DataFrameストレージ用のシンプルな関数セットがあります。DataFrameをストレージに書き込みましょう。

df = pd.DataFrame(
    {
        "a": list("abc"),
        "b": list(range(1, 4)),
        "c": np.arange(3, 6).astype("u1"),
        "d": np.arange(4.0, 7.0, dtype="float64"),
        "e": [True, False, True],
        "f": pd.date_range("20130101", periods=3)
    }
)

df
df.dtypes

ArcticDBに書き込みます。

write_record = lib.write("test", df)

注:pandas DataFrameを書き込む際、ArcticDBは以下のインデックスタイプをサポートしています。

  • int64を含むpandas.Index(または対応する専用タイプInt64Index、UInt64Index)
  • RangeIndex
  • DatetimeIndex
  • 上記のサポートされているタイプで構成されたMultiIndex

head/tailにおける「行」の概念は、pandas.Indexの値('loc')ではなく、行番号('iloc')を指します。

ArcticDBからのデータ読み取り

ストレージからデータを読み戻します。

read_record = lib.read("test")
read_record.data
df.dtypes

ArcticDBは、ストレージからpandas DataFrameへのデータの追加、更新、およびクエリもサポートしています。詳細については、こちらをご覧ください。

Hugging Face

Hugging Face Dataset Hubは、コミュニティによって共有された、機械学習用のすぐに使えるデータセットを豊富に提供しています。このプラットフォームは、データセットを探索、発見、視覚化するための使いやすいインターフェースを提供し、huggingface_hubライブラリのおかげで、Pythonでこれらのデータセットを簡単にロードして操作するためのツールも提供しています。

pandasでは、hf://datasets/username/dataset_name/...の形式のhf://パスを使用してHugging Face上のデータセットにアクセスできます。

たとえば、stanfordnlp/imdbデータセットをロードする方法を次に示します。

import pandas as pd

# Load the IMDB dataset
df = pd.read_parquet("hf://datasets/stanfordnlp/imdb/plain_text/train-00000-of-00001.parquet")

ヒント: データセットページで「Use this dataset」をクリックすると、pandasでロードするためのコードを取得できます。

Hugging Faceにデータセットを保存するには、公開またはプライベートデータセットを作成し、ログインする必要があります。その後、df.to_csv/to_json/to_parquetを使用できます。

# Save the dataset to my Hugging Face account
df.to_parquet("hf://datasets/username/dataset_name/train.parquet")

Hugging Face Dataset Hubの詳細については、ドキュメントをご覧ください。

アウトオブコア

Bodo

Bodoは、Pythonデータ処理のための高性能計算エンジンです。自動並列化JIT (Just-In-Time) コンパイラを使用することで、BodoはPandasのワークロードをラップトップからクラスターに大規模に拡張する際の大幅なコード変更を簡素化します。Bodoは内部的にMPIベースの高性能コンピューティング (HPC) テクノロジーに依存しており、代替手段よりも使いやすく、多くの場合、はるかに高速です。Bodoは、分散pandasデータフレームを効率的にクエリできるSQLエンジンも提供します。

import pandas as pd
import bodo

@bodo.jit
def process_data():
    df = pd.read_parquet("my_data.pq")
    df2 = pd.DataFrame({"A": df.apply(lambda r: 0 if r.A == 0 else (r.B // r.A), axis=1)})
    df2.to_parquet("out.pq")

process_data()

Cylon

Cylonは、pandasライクなPython DataFrame APIを備えた、高速でスケーラブルな分散メモリ並列ランタイムです。「Core Cylon」は、Apache Arrow形式を使用してデータをインメモリで表現するためにC++で実装されています。Cylon DataFrame APIは、merge、filter、join、concat、group-by、drop_duplicatesなどのpandasのコア演算子のほとんどを実装しています。これらの演算子は、数千のコアにわたってアプリケーションをスケーリングするように設計されています。pandasからデータを読み込んだり、pandasにデータを変換したりすることで、pandas DataFrameアプリケーションの一部を selectively scale することができるため、pandas DataFrameと相互運用できます。

from pycylon import read_csv, DataFrame, CylonEnv
from pycylon.net import MPIConfig

# Initialize Cylon distributed environment
config: MPIConfig = MPIConfig()
env: CylonEnv = CylonEnv(config=config, distributed=True)

df1: DataFrame = read_csv('/tmp/csv1.csv')
df2: DataFrame = read_csv('/tmp/csv2.csv')

# Using 1000s of cores across the cluster to compute the join
df3: Table = df1.join(other=df2, on=[0], algorithm="hash", env=env)

print(df3)

Dask

Daskは、分析のための柔軟な並列コンピューティングライブラリです。Daskは、アウトオブコア、並列、分散コンピューティングのための使い慣れたDataFrameインターフェースを提供します。

Dask-ML

Dask-MLは、DaskとScikit-Learn、XGBoost、TensorFlowなどの既存の機械学習ライブラリを組み合わせて、並列および分散機械学習を可能にします。

Ibis

Ibisは、複数のエンジンで実行できる分析コードを記述するための標準的な方法を提供します。ローカルのPython環境(pandasなど)とHadoopコンポーネント(HDFS、Impala、Hive、Sparkなど)やSQLデータベース(Postgresなど)のようなリモートストレージおよび実行システムとの間のギャップを埋めるのに役立ちます。

Koalas

Koalasは、Apache Sparkの上に使い慣れたpandas DataFrameインターフェースを提供します。これにより、ユーザーは1台のマシンのマルチコアまたはマシンのクラスターを活用して、DataFrameコードを高速化またはスケーリングできます。

Modin

modin.pandas DataFrameは、pandasの並列分散ドロップイン代替品です。これは、既存のpandasコードでModinを使用したり、既存のpandas APIで新しいコードを記述したりできることを意味します。Modinは、データ取り込み(read_csvread_excelread_parquetなど)のような従来時間のかかるタスクを含む、pandasワークロードを高速化し、スケーリングするために、マシンまたはクラスター全体を活用できます。

# import pandas as pd
import modin.pandas as pd

df = pd.read_csv("big.csv")  # use all your cores!

Pandarallel

Pandarallel は、1行のコードを変更するだけで、すべての CPU で pandas の操作を並列化する簡単な方法を提供します。また、進捗バーも表示されます。

from pandarallel import pandarallel

pandarallel.initialize(progress_bar=True)

# df.apply(func)
df.parallel_apply(func)

Vaex

データ準備、分析、視覚化における特定のニーズに対応するために、pandasの上に構築されたパッケージが増えています。Vaexは、大規模な表形式データセットを視覚化および探索するためのOut-of-Core DataFrames(Pandasに似ています)用のPythonライブラリです。平均、合計、カウント、標準偏差などの統計値をN次元グリッド上で1秒あたり最大10億(10^9)個のオブジェクト/行で計算できます。視覚化はヒストグラム、密度プロット、3Dボリュームレンダリングを使用して行われ、ビッグデータのインタラクティブな探索を可能にします。Vaexは最高のパフォーマンスのためにメモリマッピング、ゼロメモリーコピーポリシー、遅延計算を使用します(メモリの無駄がありません)。

Hail Query

アウトオブコア、プリエンプティブセーフ、分散型、遺伝学コミュニティに貢献するデータフレームライブラリ。Hail Queryは、ディスク上のデータ形式、インメモリデータ形式、式コンパイラ、クエリプランナー、および分散ソートアルゴリズムを搭載しており、これらはすべてゲノムシーケンシングデータの大規模マトリックスに対するクエリを高速化するように設計されています。

Hailによって生成された要約統計量やその他の小さな集計を操作するには、pandasを使用するのが最も簡単であることがよくあります。このため、Hailはpandas DataFrameへのネイティブなインポートとエクスポートを提供しています。

データクリーニングと検証

pyjanitor

Pyjanitorは、メソッドチェーンを使用してデータをクリーニングするためのクリーンなAPIを提供します。

Pandera

Panderaは、データフレームに対してデータ検証を実行するための柔軟で表現力豊かなAPIを提供し、データ処理パイプラインをより読みやすく堅牢にします。データフレームには、panderaが実行時に明示的に検証する情報が含まれています。これは、本番環境で重要なデータパイプラインや再現可能な研究設定で役立ちます。

拡張データ型

Pandasは、NumPyの型システムを拡張するための拡張型を定義するためのインターフェースを提供します。以下のライブラリは、そのインターフェースを実装して、NumPyまたはpandasにはない型を提供し、pandasのデータコンテナとうまく連携します。

awkward-pandas

Awkward-pandasは、pandasのSeriesおよびDataFrame内にAwkward Arraysを格納するための拡張型を提供します。また、Awkward型であるSeriesでawkward関数を使用するためのアクセサーも提供します。

db-dtypes

db-dtypesは、データベースシステムからのDATE、TIME、JSONのような型を扱うための拡張型を提供します。このパッケージは、pandas-gbqによって、自然なnumpy型を持たないBigQueryデータ型に自然なdtypesを提供するために使用されます。

Pandas-Genomics

Pandas-Genomicsは、ゲノミクスデータを扱うための拡張型と拡張配列を提供します。また、ゲノミクスデータのQCと分析に関連する多くの有用なプロパティとメソッドのためのgenomicsアクセサーも含まれています。

Physipandas

Physipandasは、物理量(スカラーやnumpy.ndarrayなど)を物理単位(メートルやジュールなど)と組み合わせて操作するための拡張機能と、physipyアクセサーとpandas SeriesおよびDataFrameの統合のための追加機能を提供します。

Pint-Pandas

Pint-Pandasは、単位付き数値配列を格納するための拡張型を提供します。これらの配列はpandasのSeriesおよびDataFrame内に格納できます。pintの拡張配列を使用するSeriesとDataFrameの列間の操作は、単位を認識します。

Text Extensions

Text Extensions for Pandas は、自然言語データを表現するための一般的なデータ構造をカバーする拡張型と、一般的な自然言語処理ライブラリの出力を pandas DataFrame に変換するライブラリ統合機能を提供します。

アクセサー

拡張アクセサーを提供するプロジェクトのディレクトリです。これは、ユーザーが新しいアクセサーを発見し、ライブラリ作成者が名前空間を調整するためのものです。

ライブラリ アクセサー クラス
awkward-pandas ak Series
pdvega vgplot SeriesDataFrame
pandas-genomics genomics SeriesDataFrame
pint-pandas pint SeriesDataFrame
physipandas physipy SeriesDataFrame
composeml slice DataFrame
gurobipy-pandas gppd SeriesDataFrame
staircase sc SeriesDataFrame
woodwork slice SeriesDataFrame

開発ツール

pandas-stubs

pandasリポジトリは部分的に型付けされていますが、パッケージ自体はこの情報を外部で使用するために公開していません。pandas APIの基本的な型カバレッジを有効にするには、pandas-stubsをインストールしてください。

これらの課題144682676628142を読んで詳細をご覧ください。

インストールと使用方法については、GitHubページをご覧ください。

Hamilton

Hamiltonは、Stitch Fixから生まれた宣言型データフローフレームワークです。Pandasコードベース、特に機械学習モデルのための特徴量エンジニアリングを管理するために設計されました。

すべてのコードが次のとおりであることを保証する、意見のあるパラダイムを規定しています。

これにより、pandasコードベースを拡張しつつ、メンテナンスコストを低く抑えることができます。

詳細については、ドキュメントをご覧ください。