メインコンテンツへスキップ
このガイドでは、互換性を保ちながらパフォーマンスを向上させるために、既存の pandas コードを DataStore へ移行する方法を説明します。

ワンライナーでの移行

最も簡単なのは、import 文を変更するだけです:
これで完了です!ほとんどの pandas コードは変更なしでそのまま動作します。

移行手順

1

chDB をインストールする

2

インポート文を変更する

3

コードをテストする

既存のコードを実行してください。ほとんどの操作はそのまま動作します。
4

相違点があれば対応する

一部の操作は挙動が異なります。以下の主な違いを参照してください。

変更せずに使えるもの

データの読み込み

フィルタ

選択範囲

GroupBy と集計

ソート

文字列操作

DateTime の操作

I/O 処理


主な違い

1. 遅延評価

DataStore の操作は遅延的に評価され、結果が必要になるまで実行されません。 pandas:
DataStore:

2. 戻り値の型

3. inplace パラメータはありません

DataStore は inplace=True に対応していません。必ず戻り値を使用してください。 pandas:
DataStore:

4. DataStore の比較

pandas は DataStore オブジェクトを認識しないため、比較するには to_pandas() を使用します。

5. 行の順序

DataStore では、ファイルソース (SQL データベースなど) の場合、行の順序が保持されないことがあります。明示的にソートしてください。

移行パターン

パターン 1: 読み込み・分析・書き込み

パターン 2: pandas 操作用の DataFrame

pandas 固有の機能が必要な場合は、最後に変換します。

パターン 3: ハイブリッドワークフロー


パフォーマンス比較

大規模なデータセットでは、DataStore のほうが大幅に高速です。 1,000万行でのベンチマーク

移行のトラブルシューティング

問題: 操作が機能しない

一部の pandas の操作はサポートされていないことがあります。以下を確認してください。
  1. その操作は互換性リストに記載されていますか?
  2. まず pandas に変換してから試してください: ds.to_df().operation()

問題: 結果が異なる

何が起きているかを把握するには、デバッグログを有効にします:

問題: パフォーマンスが低下している

実行パターンを確認してください:

問題: 型の不一致

DataStore では推論される型が異なる場合があります:

段階的移行戦略

第1週: 互換性を検証する

第2週: 単純なスクリプトに切り替える

まずは、次のようなスクリプトから始めます:
  • 大きなファイルを読み込む
  • フィルタリングや集計を行う
  • カスタムの apply 関数を使用しない

第3週: 複雑なケースへの対応

カスタム関数を含むスクリプトの場合:

第4週: 完全移行

すべてのスクリプトでDataStoreをインポートするように切り替えます。

よくある質問

pandas と DataStore の両方を使えますか?

はい!両者は自由に変換できます。

テストは引き続き通りますか?

ほとんどのテストは通るはずです。比較テストについては、pandas に変換してください。

Jupyter で DataStore を使用できますか?

はい!DataStore は Jupyter ノートブックで使用できます:

問題はどこに報告すればよいですか?

互換性に関する問題を見つけた場合は、以下で報告してください。 https://github.com/chdb-io/chdb/issues
最終更新日 2026年6月19日