注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

foundryts.functions.distribution

foundryts.functions.distribution(start=None, end=None, start_value=None, end_value=None, bins=None)

1つ以上の時系列の分布を評価する関数を返します。

分布とは、指定された値の範囲を分割するビンに、点を値ごとに振り分けたものです。 分布を評価すると、各ビンの範囲内にある点の数と、 その範囲の開始値および終了値を示すビンのリストが返されます。

分布は単一の系列にも複数の系列にも適用できます。複数の系列に適用する場合、分布関数は 最終的なデータフレームの各ビンについて、すべての系列の値の和集合を対象とします。

各ビンの値の範囲幅は一定で、次の式で計算されます。 (最大値 - 最小値)/(ビンの数)

  • パラメーター:
    • start (Union [int , datetime , str ] , 任意) – 指定された系列の分布の評価を開始するタイムスタンプ(この値を含む)です。デフォルトは、 入力時系列全体で最も早いタイムスタンプです。
    • end (Union [int , datetime , str ] , 任意) – 指定された系列の分布の評価を終了するタイムスタンプ(この値を含まない)です。デフォルトは、 入力時系列全体で最も遅いタイムスタンプです。
    • start_value (float , 任意) – 分布を評価する値の範囲の下限(この値を含む)です。デフォルトは、 入力時系列全体の最小値です。
    • end_value (float , 任意) – 分布を評価する値の範囲の上限(この値を含まない)です。デフォルトは、 入力時系列全体の最大値です。
    • bins (int , 任意) – 点を振り分ける値のビンの数です(デフォルトは10)。
  • 戻り値: 1つ以上の系列を入力として受け取り、指定された数またはデフォルトの数のビンを使用して、 すべての点の分布を生成する関数です。
  • 戻り値の型: (Union[FunctionNode, NodeCollection]) -> SummarizerNode

データフレームのスキーマ

列名データ型説明
start_timestampdatetime分布の開始時刻(この値を含む)
end_timestampdatetime分布の終了時刻(この値を含まない)
startfloat値の下限(この値を含む)
endfloat値の上限(この値を含まない)
deltafloat各ビンの最小値と最大値の差です。
ビンの計算方法により、delta は
すべてのビンで一定です。
distribution_values.startfloat分布のビンの開始値
distribution_values.endfloat分布のビンの終了値
distribution_values.countint分布のビン内の件数
関連項目

statistics()、scatter()

注

この関数は数値系列にのみ適用できます。

例

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 >>> series_1 = F.points( ... (1, 0.0), ... (101, 10.2), ... (200, 11.3), ... (201, 11.1), ... (299, 11.2), ... (300, 12.0), ... (400, 11.7), ... (500, 16.0), ... (123450, 11.8), ... name="series-1", ... ) >>> series_2 = F.points( ... (1, 0.5), ... (101, 0.2), ... (200, 1.3), ... (201, 0.1), ... (299, 1.2), ... (300, 1.4), ... (400, 1.0), ... (500, 2.0), ... (123450, 1.0), ... name="series-2", ... ) >>> series_1.to_pandas() timestamp value 0 1970-01-01 00:00:00.000000001 0.0 1 1970-01-01 00:00:00.000000101 10.2 2 1970-01-01 00:00:00.000000200 11.3 3 1970-01-01 00:00:00.000000201 11.1 4 1970-01-01 00:00:00.000000299 11.2 5 1970-01-01 00:00:00.000000300 12.0 6 1970-01-01 00:00:00.000000400 11.7 7 1970-01-01 00:00:00.000000500 16.0 8 1970-01-01 00:00:00.000123450 11.8 >>> series_2.to_pandas() timestamp value 0 1970-01-01 00:00:00.000000001 0.5 1 1970-01-01 00:00:00.000000101 0.2 2 1970-01-01 00:00:00.000000200 1.3 3 1970-01-01 00:00:00.000000201 0.1 4 1970-01-01 00:00:00.000000299 1.2 5 1970-01-01 00:00:00.000000300 1.4 6 1970-01-01 00:00:00.000000400 1.0 7 1970-01-01 00:00:00.000000500 2.0 8 1970-01-01 00:00:00.000123450 1.0 >>> nc = NodeCollection(series_1, series_2)
Copied!
1 2 3 4 5 6 >>> single_dist = F.distribution(bins=3)(series_1) # 単一系列の分布 >>> single_dist.to_pandas() delta distribution_values.count distribution_values.end distribution_values.start end end_timestamp start start_timestamp 0 5.333333 1 5.333333 0.000000 16.0 2262-01-01 0.0 1677-09-21 00:12:43.145225216 1 5.333333 1 10.666667 5.333333 16.0 2262-01-01 0.0 1677-09-21 00:12:43.145225216 2 5.333333 7 16.000000 10.666667 16.0 2262-01-01 0.0 1677-09-21 00:12:43.145225216
Copied!
1 2 3 4 5 6 >>> multiple_dist = F.distribution(bins=3)(nc) # 複数系列の分布 >>> multiple_dist.to_pandas() delta distribution_values.count distribution_values.end distribution_values.start end end_timestamp start start_timestamp 0 5.333333 10 5.333333 0.000000 16.0 2262-01-01 0.0 1677-09-21 00:12:43.145225216 1 5.333333 1 10.666667 5.333333 16.0 2262-01-01 0.0 1677-09-21 00:12:43.145225216 2 5.333333 7 16.000000 10.666667 16.0 2262-01-01 0.0 1677-09-21 00:12:43.145225216