注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
time seriesをオントロジーを用いて検索クエリを実行するためのインターフェース。
このインターフェースは、オントロジー内のプロパティを使用してtime seriesのコレクションを検索することを可能にします。検索をフィルター処理することで、検索に含めるオブジェクトを特定することができます。
これは、プログラムによるtime seriesへのアクセスが動的であり、オントロジーのプロパティ値に基づく場合に複数のtime seriesをクエリするのに役立ちます。以下の例を考えてみてください。
ユーザーのオントロジーにstockオブジェクトタイプがあり、プロパティとして[ticker
, sector
, exchange
, price
]が含まれています。「Technology」セクターのすべての株の価格を取得するには、次のクエリでSearch.series()
を使用します。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
>>> fts = FoundryTS() >>> tech_stocks_price = fts.search.series( ... query=(ontology("sector") == "Technology"), # セクターが「Technology」である株を検索 ... object_types=["stock"], # オブジェクトタイプは「stock」に設定 ... property_type_id="price" # プロパティタイプは「price」に設定 ... ) >>> tech_stocks_price.to_pandas() series timestamp value 0 stock-A 2023-01-01 00:00:00.000 150.75 1 stock-A 2023-01-02 00:00:00.000 152.30 2 stock-A 2023-01-03 00:00:00.000 148.90 3 stock-B 2023-01-01 00:00:00.000 200.50 4 stock-B 2023-01-02 00:00:00.000 202.75 5 stock-B 2023-01-03 00:00:00.000 198.40 6 stock-C 2023-01-01 00:00:00.000 120.10 7 stock-C 2023-01-02 00:00:00.000 118.95 8 stock-C 2023-01-03 00:00:00.000 121.70 9 stock-D 2023-01-01 00:00:00.000 310.20 10 stock-D 2023-01-02 00:00:00.000 312.50 11 stock-D 2023-01-03 00:00:00.000 308.90
このコードは、テクノロジーセクターに属する株式の価格データを検索し、それをPandasデータフレーム形式で表示しています。 同様に、特定の取引所の株式や、オブジェクトタイプの他の関連プロパティで検索することができます。
検索方法は、上記の例に示されているように、FoundryTS.search
シングルトンプロパティを介してアクセスできます。
検索は time series のリファレンスのみをクエリすることができ、time series 自体の値をクエリすることはできません(たとえば、値が条件を満たすシリーズやポイントを検索すること)。time series 内のデータを検索するには、dsl()
と time_series_search()
を参照してください。
渡されたクエリを使用して time series を検索し、すべての結果を含む NodeCollection
を返します。
検索構文は、ontology()
を使用して、オントロジー内のプロパティに対する等式を ==
演算子で確認します。さらに、object_types
を使用してオントロジー内の特定のオブジェクトタイプに検索範囲を限定することができます。オントロジー全体を検索することを避けるために推奨されます。
NodeCollection
を FunctionNode
として返します。NodeCollection
クエリで使用するプロパティ(ontology()
を使用)の検索が可能であることを確認してください。そうでないと検索が失敗します。time series プロパティは検索可能ではありません。
非プリミティブな時間依存プロパティ(テンプレートやマルチシンクプロパティなど)を使用する場合、experimental_enable_complex_properties
フラグが必要です。
Copied!1
>>> fts = FoundryTS() # FoundryTSのインスタンスを作成
Copied!1 2 3 4 5 6 7 8 9
>>> tsp_search_without_query = fts.search.series(object_types=["stock-series"]) >>> tsp_search_without_query.to_pandas() series timestamp value 0 SPX_open 1970-01-01 00:00:00.000 1.5 1 SPX_open 1970-01-01 00:00:00.001 2.5 2 SPX_open 1970-01-01 00:00:00.004 3.5 3 ZVZZT_open 1970-01-01 00:00:00.000 2.5 4 ZVZZT_open 1970-01-01 00:00:00.001 3.5 5 ZVZZT_open 1970-01-01 00:00:00.004 4.5
このコードは fts.search.series
メソッドを使用して、object_types
に「stock-series」を指定して検索を行っています。その結果を pandas データフレーム形式で表示しています。データフレームには、series
(シリーズ名)、timestamp
(タイムスタンプ)、value
(値)の列があります。
Copied!1 2 3 4 5 6 7 8 9
>>> tsp_search = fts.search.series((search.ontology("ticker") == "SPX")) >>> tsp_search.to_pandas() series timestamp value 0 SPX_open 1970-01-01 00:00:00.000 1.5 1 SPX_open 1970-01-01 00:00:00.001 2.5 2 SPX_open 1970-01-01 00:00:00.004 3.5 3 SPX_close 1970-01-01 00:00:00.005 15.0 4 SPX_close 1970-01-01 00:00:00.006 25.0 5 SPX_close 1970-01-01 00:00:00.007 35.0
fts.search.series((search.ontology("ticker") == "SPX"))
は、ティッカーシンボルが SPX
のデータを検索しています。.to_pandas()
は結果を Pandas DataFrame に変換しています。series
列はデータの種類(SPX_open
や SPX_close
)を示し、timestamp
列はタイムスタンプ、value
列はその時点の値を示しています。Copied!1 2 3 4 5 6 7 8 9 10
>>> tsp_search_with_experimental_properties = fts.search.series( ... (search.ontology("ticker") == "SPX"), ... object_types=["stock-series"], ... experimental_enable_complex_properties=True, ... ) >>> tsp_search_with_experimental_properties.to_pandas() series timestamp value 0 stock-series:SPX:open_price 1970-01-01 00:00:00.000 1.5 1 stock-series:SPX:open_price 1970-01-01 00:00:00.001 2.5 2 stock-series:SPX:open_price 1970-01-01 00:00:00.004 3.5
このコードは、fts.search.series
を使用して、SPXというティッカーシンボルに関連する株価データを検索しています。experimental_enable_complex_properties=True
を設定することで、複雑なプロパティを有効にしています。検索結果は、Pandasのデータフレーム形式に変換され、各行には series
(シリーズ名)、timestamp
(タイムスタンプ)、および value
(値)が含まれます。