pandasユーザーのためのCognoxium

CognitionFrameは、pandasのように処理を組み合わせられる表形式の操作感を備えています。ただし、行に格納するのは任意の業務データではありません。各行は、出所、信頼区分、保持要件、来歴を持つAIコンテキストの一単位です。

実用的な対応表

pandasの概念

Cognoxiumでの対応

重要な違い

DataFrame

CognitionFrame

ContextItemレコードに対する不変の処理計画

真偽値マスク

frame.filter(cx.col(...) > ...)

式はコンテキストのフィールドを対象にします

assign

with_columns

AI向け操作には引き続きidpayloadが必要です

sort_values

sort

rank()は会話順を変えずに関連度を保存します

drop_duplicates

dedupe

正規化されたペイロードのハッシュで判定し、来歴を保守的に統合します

groupby().agg()

group_by().agg()

v0.1系列の集約は表形式データの探索用で、直ちに評価されます

to_dict("records")

to_records()

型付きコンテキストのスキーマを保持します

入出力メソッド

JSONL、Arrow IPC、Parquet

Arrow/Parquetにはarrow追加機能が必要です

使い慣れた操作

import cognoxium as cx

frame = cx.CognitionFrame.from_records([
    {"id": "a", "payload": "Rust tokenizer", "priority": 2,
     "sources": ["app://a"], "created_at": "2026-01-01T00:00:00Z"},
    {"id": "b", "payload": "Python fallback", "priority": 1,
     "sources": ["app://b"], "created_at": "2026-01-01T00:01:00Z"},
])

active = frame.filter(cx.col("priority") >= 2).sort("priority", descending=True)
print([item.id for item in active.collect()])
print(active.explain())
['a']
Scan[context records] -> Filter -> Sort[priority]

pandasとの意図的な違い

  • インプレースの変更はありません。どの変換も新しいフレームを返します。

  • rank()sort()ではありません。順位付けは予算配分に影響しますが、選択後の出力では元の順序が保たれます。

  • required(必須)は契約です。パック処理が暗黙に除外したり、保持要件を下げたりすることはありません。

  • select()では、idpayloadを持たない探索用テーブルも作成できます。そのようなテーブルでcollect()dedupe()rank()pack()を呼び出すとSchemaErrorが発生します。確認にはcollect_records()を使用してください。

  • 通常のフレーム計画は遅延実行ですが、v0.1系列のGroupedCognitionFrame.agg()は即時実行です。

  • Cognoxiumはpandasの代替ではなく、汎用的なインデックス操作、統計分析、任意形式の入出力は実装していません。

ユーザー向けに安定性が保証される名前空間は、cognoxiumからエクスポートされる名前の集合です。_rank_score_cognoxium_dedupeのようにアンダースコアで始まるメタデータは実装の詳細です。長期保存する監査記録にはPackManifestを使用してください。