Operatore make-seriesmake-series operator

Crea una serie di valori aggregati specificati lungo un asse specificato.Create series of specified aggregated values along a specified axis.

T | make-series sum(amount) default=0, avg(price) default=0 on timestamp from datetime(2016-01-01) to datetime(2016-01-10) step 1d by fruit, supplier

SintassiSyntax

T | make-series [MakeSeriesParamters] [colonna = ] aggregazione [ default = DefaultValue] [ , ...] on AxisColumn [ from Start] [ to end] step Step [ by [Column = ] GroupExpression [ , ...]]T | make-series [MakeSeriesParamters] [Column =] Aggregation [default = DefaultValue] [, ...] on AxisColumn [from start] [to end] step step [by [Column =] GroupExpression [, ...]]

ArgomentiArguments

  • Column: nome facoltativo per una colonna di risultati.Column: Optional name for a result column. Il valore predefinito è un nome derivato dall'espressione.Defaults to a name derived from the expression.

  • DefaultValue: Valore predefinito che verrà utilizzato al posto dei valori assente.DefaultValue: Default value that will be used instead of absent values. Se non è presente alcuna riga con valori specifici di AxisColumn e GroupExpression, nei risultati verrà assegnato un DefaultValue all'elemento corrispondente della matrice.If there is no row with specific values of AxisColumn and GroupExpression, then in the results the corresponding element of the array will be assigned a DefaultValue. Se DefaultValue viene omesso, viene utilizzato 0.If DefaultValue is omitted, then 0 is assumed.

  • Aggregazione: Una chiamata a una funzione di aggregazione , ad esempio count() o avg() , con nomi di colonna come argomenti.Aggregation: A call to an aggregation function such as count() or avg(), with column names as arguments. Vedere l' elenco delle funzioni di aggregazione.See the list of aggregation functions. Con l'operatore è possibile utilizzare solo le funzioni di aggregazione che restituiscono risultati numerici make-series .Only aggregation functions that return numeric results can be used with the make-series operator.

  • AxisColumn: Colonna in cui verranno ordinate le serie.AxisColumn: A column on which the series will be ordered. Può essere considerato come sequenza temporale, ma oltre a datetime qualsiasi tipo numerico viene accettato.It could be considered as timeline, but besides datetime any numeric types are accepted.

  • Start: (facoltativo) valore di limite basso di AxisColumn per ciascuna serie da compilare.start: (optional) The low bound value of the AxisColumn for each of the series to be built. Start, end e Step vengono usati per compilare una matrice di valori AxisColumn all'interno di un intervallo specificato e per usare il passaggio specificato.start, end, and step are used to build an array of AxisColumn values within a given range and using specified step. Tutti i valori di aggregazione sono ordinati rispettivamente in questa matrice.All Aggregation values are ordered respectively to this array. Questa matrice AxisColumn è anche l'ultima colonna di output nell'output con lo stesso nome di AxisColumn.This AxisColumn array is also the last output column in the output that has the same name as AxisColumn. Se non viene specificato un valore iniziale , l'inizio è il primo bin (STEP) che contiene i dati di ogni serie.If a start value is not specified, the start is the first bin (step) which has data in each series.

  • end: (facoltativo) valore ad associazione elevata (non inclusivo) di AxisColumn.end: (optional) The high bound (non-inclusive) value of the AxisColumn. L'ultimo indice della serie temporale è inferiore a questo valore (e verrà avviato più il multiplo integer del passaggio minore di end).The last index of the time series is smaller than this value (and will be start plus integer multiple of step that is smaller than end). Se non viene specificato alcun valore finale , sarà il limite superiore dell'ultimo contenitore (passaggio) che contiene i dati per ogni serie.If end value is not provided, it will be the upper bound of the last bin (step) which has data per each series.

  • Step: differenza tra due elementi consecutivi della matrice AxisColumn (ovvero le dimensioni del contenitore).step: The difference between two consecutive elements of the AxisColumn array (that is, the bin size).

  • GroupExpression: Espressione sulle colonne che fornisce un set di valori distinti.GroupExpression: An expression over the columns that provides a set of distinct values. In genere è un nome di colonna che fornisce già un set limitato di valori.Typically it's a column name that already provides a restricted set of values.

  • MakeSeriesParameters: zero o più parametri (separati da spazi) sotto forma di valore del nome = Value che controllano il comportamento.MakeSeriesParameters: Zero or more (space-separated) parameters in the form of Name = Value that control the behavior. Sono supportati i seguenti parametri:The following parameters are supported:

    NomeName ValoriValues DescrizioneDescription
    kind nonempty Produce il risultato predefinito quando l'input dell'operatore della serie make è vuotoProduces default result when the input of make-series operator is empty

RestituisceReturns

Le righe di input vengono disposte in gruppi con gli stessi valori delle by espressioni e l'espressione di avvio del bin_at( AxisColumn , passaggio AxisColumn , start ) .The input rows are arranged into groups having the same values of the by expressions and the bin_at(AxisColumn, step, start) expression. Vengono quindi calcolate per ogni gruppo le funzioni di aggregazione specificate, generando una riga per ogni gruppo.Then the specified aggregation functions are computed over each group, producing a row for each group. Il risultato contiene le by colonne AxisColumn e anche almeno una colonna per ogni aggregazione calcolata.The result contains the by columns, AxisColumn column and also at least one column for each computed aggregate. (Aggregazione non supportata da più colonne o risultati non numerici).(Aggregation that multiple columns or non-numeric results are not supported.)

Questo risultato intermedio include un numero di righe pari al numero di righe distinte by e bin_at( AxisColumn , step , i valori iniziali del passaggio AxisColumn ) .This intermediate result has as many rows as there are distinct combinations of by and bin_at(AxisColumn, step, start) values.

Infine, le righe del risultato intermedio disposte in gruppi con gli stessi valori delle by espressioni e tutti i valori aggregati vengono disposti in matrici (valori di dynamic tipo).Finally the rows from the intermediate result arranged into groups having the same values of the by expressions and all aggregated values are arranged into arrays (values of dynamic type). Per ogni aggregazione, esiste una colonna contenente la relativa matrice con lo stesso nome.For each aggregation, there is one column containing its array with the same name. Ultima colonna nell'output della funzione range con tutti i valori AxisColumn .The last column in the output of the range function with all AxisColumn values. Il valore viene ripetuto per tutte le righe.Its value is repeated for all rows.

A causa dei cesti mancanti di riempimento per impostazione predefinita, la tabella pivot risultante presenta lo stesso numero di bin (ovvero i valori aggregati) per tutte le serieDue to the fill missing bins by default value, the resulting pivot table has the same number of bins (that is, aggregated values) for all series

NotaNote

Sebbene sia possibile fornire espressioni arbitrarie per le espressioni di aggregazione e raggruppamento, è più efficiente utilizzare nomi di colonna semplici.Although you can provide arbitrary expressions for both the aggregation and grouping expressions, it's more efficient to use simple column names.

Sintassi alternativaAlternate Syntax

T | make-series [Column = ] aggregazione [ default = DefaultValue] [ , ...] on AxisColumn in range( Start , Stop , step ) [ by [colonna = ] GroupExpression [ , ...]]T | make-series [Column =] Aggregation [default = DefaultValue] [, ...] on AxisColumn in range(start, stop, step) [by [Column =] GroupExpression [, ...]]

La serie generata dalla sintassi alternativa è diversa dalla sintassi principale in due aspetti:The generated series from the alternate syntax differs from the main syntax in two aspects:

  • Il valore di arresto è inclusivo.The stop value is inclusive.
  • La suddivisione in contenitori dell'asse degli indici viene generata con bin () e non bin_at (), il che significa che l' avvio potrebbe non essere incluso nella serie generata.Binning the index axis is generated with bin() and not bin_at(), which means that start may not be included in the generated series.

Si consiglia di usare la sintassi principale della serie make e non la sintassi alternativa.It is recommended to use the main syntax of make-series and not the alternate syntax.

Distribuzione e riproduzione casualeDistribution and Shuffle

make-series supporta summarize hint shufflekey usando la sintassi hint. shufflekey.make-series supports summarize shufflekey hints using the syntax hint.shufflekey.

Elenco di funzioni di aggregazioneList of aggregation functions

FunzioneFunction DescrizioneDescription
Any ()any() Restituisce un valore non vuoto casuale per il gruppoReturns a random non-empty value for the group
AVG ()avg() Restituisce un valore medio nel gruppo.Returns an average value across the group
avgif()avgif() Restituisce una media con il predicato del gruppoReturns an average with the predicate of the group
conteggio ()count() Restituisce un conteggio del gruppoReturns a count of the group
countif()countif() Restituisce un conteggio con il predicato del gruppoReturns a count with the predicate of the group
dcount()dcount() Restituisce un conteggio approssimativo Distinct degli elementi GroupReturns an approximate distinct count of the group elements
dcountif()dcountif() Restituisce un conteggio Distinct approssimativo con il predicato del gruppoReturns an approximate distinct count with the predicate of the group
max()max() Restituisce il valore massimo nel gruppoReturns the maximum value across the group
maxif()maxif() Restituisce il valore massimo con il predicato del gruppoReturns the maximum value with the predicate of the group
min()min() Restituisce il valore minimo nel gruppoReturns the minimum value across the group
minif()minif() Restituisce il valore minimo con il predicato del gruppoReturns the minimum value with the predicate of the group
StDev ()stdev() Restituisce la deviazione standard nel gruppoReturns the standard deviation across the group
Sum ()sum() Restituisce la somma degli elementi all'interno del gruppo.Returns the sum of the elements within the group
sumif()sumif() Restituisce la somma degli elementi con il predicato del gruppoReturns the sum of the elements with the predicate of the group
variance()variance() Restituisce la varianza nel gruppoReturns the variance across the group

Elenco di funzioni di analisi serieList of series analysis functions

FunzioneFunction DescrizioneDescription
series_fir()series_fir() Applica il filtro di risposta a impulsi finitiApplies Finite Impulse Response filter
series_iir()series_iir() Applica il filtro di risposta ad impulso infinitoApplies Infinite Impulse Response filter
series_fit_line()series_fit_line() Trova una linea retta che rappresenta la migliore approssimazione dell'inputFinds a straight line that is the best approximation of the input
series_fit_line_dynamic()series_fit_line_dynamic() Trova una riga che rappresenta la migliore approssimazione dell'input, restituendo l'oggetto dinamico.Finds a line that is the best approximation of the input, returning dynamic object
series_fit_2lines()series_fit_2lines() Trova due righe che rappresentano la migliore approssimazione dell'inputFinds two lines that are the best approximation of the input
series_fit_2lines_dynamic()series_fit_2lines_dynamic() Trova due righe che rappresentano la migliore approssimazione dell'input, restituendo oggetti dinamiciFinds two lines that are the best approximation of the input, returning dynamic object
series_outliers()series_outliers() Punteggi anomalie punti di una serieScores anomaly points in a series
series_periods_detect()series_periods_detect() Trova i periodi più significativi presenti in una serie temporaleFinds the most significant periods that exist in a time series
series_periods_validate()series_periods_validate() Verifica se una serie temporale contiene modelli periodici di lunghezze specificateChecks whether a time series contains periodic patterns of given lengths
series_stats_dynamic()series_stats_dynamic() Restituisce più colonne con le statistiche comuni (min/max/VARIANCE/STDEV/Average)Return multiple columns with the common statistics (min/max/variance/stdev/average)
series_stats()series_stats() Genera un valore dinamico con le statistiche comuni (min/max/VARIANCE/STDEV/Average)Generates a dynamic value with the common statistics (min/max/variance/stdev/average)

Elenco delle funzioni di interpolazione delle serieList of series interpolation functions

FunzioneFunction DescrizioneDescription
series_fill_backward()series_fill_backward() Esegue l'interpolazione del riempimento con le versioni precedenti dei valori mancanti in una seriePerforms backward fill interpolation of missing values in a series
series_fill_const()series_fill_const() Sostituisce i valori mancanti in una serie con un valore costante specificatoReplaces missing values in a series with a specified constant value
series_fill_forward()series_fill_forward() Esegue l'interpolazione del riempimento in diretta dei valori mancanti in una seriePerforms forward fill interpolation of missing values in a series
series_fill_linear()series_fill_linear() Esegue l'interpolazione lineare dei valori mancanti in una seriePerforms linear interpolation of missing values in a series
  • Nota: per impostazione predefinita, le funzioni di interpolazione presuppongono null un valore mancante.Note: Interpolation functions by default assume null as a missing value. Specificare pertanto default= Double( null ) in make-series se si desidera utilizzare le funzioni di interpolazione per la serie.Therefore specify default=double(null) in make-series if you intend to use interpolation functions for the series.

EsempioExample

Tabella che mostra le matrici dei numeri e i prezzi medi di ogni frutto di ogni fornitore ordinato in base al timestamp con intervallo specificato.A table that shows arrays of the numbers and average prices of each fruit from each supplier ordered by the timestamp with specified range. Nell'output è presente una riga per ogni combinazione distinta di Fruit e Supplier.There's a row in the output for each distinct combination of fruit and supplier. Nelle colonne di output vengono visualizzati i valori fruit, Supplier e arrays di: count, Average e l'intera sequenza temporale (da 2016-01-01 a 2016-01-10).The output columns show the fruit, supplier, and arrays of: count, average, and the whole timeline (from 2016-01-01 until 2016-01-10). Tutte le matrici sono ordinate in base al rispettivo timestamp e tutti i gap vengono riempiti con i valori predefiniti (0 in questo esempio).All arrays are sorted by the respective timestamp and all gaps are filled with default values (0 in this example). Tutte le altre colonne di input vengono ignorate.All other input columns are ignored.

T | make-series PriceAvg=avg(Price) default=0
on Purchase from datetime(2016-09-10) to datetime(2016-09-13) step 1d by Supplier, Fruit

Tre tabelle. Il primo elenca i dati non elaborati, il secondo ha solo combinazioni di date Supplier-date distinte e la terza contiene i risultati della serie di prodotti.

let data=datatable(timestamp:datetime, metric: real)
[
  datetime(2016-12-31T06:00), 50,
  datetime(2017-01-01), 4,
  datetime(2017-01-02), 3,
  datetime(2017-01-03), 4,
  datetime(2017-01-03T03:00), 6,
  datetime(2017-01-05), 8,
  datetime(2017-01-05T13:40), 13,
  datetime(2017-01-06), 4,
  datetime(2017-01-07), 3,
  datetime(2017-01-08), 8,
  datetime(2017-01-08T21:00), 8,
  datetime(2017-01-09), 2,
  datetime(2017-01-09T12:00), 11,
  datetime(2017-01-10T05:00), 5,
];
let interval = 1d;
let stime = datetime(2017-01-01);
let etime = datetime(2017-01-10);
data
| make-series avg(metric) on timestamp from stime to etime step interval 
avg_metricavg_metric timestamptimestamp
[4,0, 3,0, 5,0, 0,0, 10,5, 4,0, 3,0, 8,0, 6,5][ 4.0, 3.0, 5.0, 0.0, 10.5, 4.0, 3.0, 8.0, 6.5 ] ["2017-01-01T00:00:00.0000000 Z", "2017-01-02T00:00:00.0000000 Z", "2017-01-03T00:00:00.0000000 Z", "2017-01-04T00:00:00.0000000 Z", "2017-01-05T00:00:00.0000000 Z", "2017-01-06T00:00:00.0000000 Z", "2017-01-07T00:00:00.0000000 Z", "2017-01-08T00:00:00.0000000 Z", "2017-01-09T00:00:00.0000000 Z"][ "2017-01-01T00:00:00.0000000Z", "2017-01-02T00:00:00.0000000Z", "2017-01-03T00:00:00.0000000Z", "2017-01-04T00:00:00.0000000Z", "2017-01-05T00:00:00.0000000Z", "2017-01-06T00:00:00.0000000Z", "2017-01-07T00:00:00.0000000Z", "2017-01-08T00:00:00.0000000Z", "2017-01-09T00:00:00.0000000Z" ]

Quando l'input per make-series è vuoto, il comportamento predefinito di make-series produce anche un risultato vuoto.When the input to make-series is empty, the default behavior of make-series produces an empty result as well.

let data=datatable(timestamp:datetime, metric: real)
[
  datetime(2016-12-31T06:00), 50,
  datetime(2017-01-01), 4,
  datetime(2017-01-02), 3,
  datetime(2017-01-03), 4,
  datetime(2017-01-03T03:00), 6,
  datetime(2017-01-05), 8,
  datetime(2017-01-05T13:40), 13,
  datetime(2017-01-06), 4,
  datetime(2017-01-07), 3,
  datetime(2017-01-08), 8,
  datetime(2017-01-08T21:00), 8,
  datetime(2017-01-09), 2,
  datetime(2017-01-09T12:00), 11,
  datetime(2017-01-10T05:00), 5,
];
let interval = 1d;
let stime = datetime(2017-01-01);
let etime = datetime(2017-01-10);
data
| limit 0
| make-series avg(metric) default=1.0 on timestamp from stime to etime step interval 
| count 
ConteggioCount
00

L'uso di kind=nonempty in make-series produrrà un risultato non vuoto dei valori predefiniti:Using kind=nonempty in make-series will produce a non-empty result of the default values:

let data=datatable(timestamp:datetime, metric: real)
[
  datetime(2016-12-31T06:00), 50,
  datetime(2017-01-01), 4,
  datetime(2017-01-02), 3,
  datetime(2017-01-03), 4,
  datetime(2017-01-03T03:00), 6,
  datetime(2017-01-05), 8,
  datetime(2017-01-05T13:40), 13,
  datetime(2017-01-06), 4,
  datetime(2017-01-07), 3,
  datetime(2017-01-08), 8,
  datetime(2017-01-08T21:00), 8,
  datetime(2017-01-09), 2,
  datetime(2017-01-09T12:00), 11,
  datetime(2017-01-10T05:00), 5,
];
let interval = 1d;
let stime = datetime(2017-01-01);
let etime = datetime(2017-01-10);
data
| limit 0
| make-series kind=nonempty avg(metric) default=1.0 on timestamp from stime to etime step interval 
avg_metricavg_metric timestamptimestamp
[[
1,0,1.0,
1,0,1.0,
1,0,1.0,
1,0,1.0,
1,0,1.0,
1,0,1.0,
1,0,1.0,
1,0,1.0,
1.01.0
]]
[[
"2017-01-01T00:00:00.0000000 Z","2017-01-01T00:00:00.0000000Z",
"2017-01-02T00:00:00.0000000 Z","2017-01-02T00:00:00.0000000Z",
"2017-01-03T00:00:00.0000000 Z","2017-01-03T00:00:00.0000000Z",
"2017-01-04T00:00:00.0000000 Z","2017-01-04T00:00:00.0000000Z",
"2017-01-05T00:00:00.0000000 Z","2017-01-05T00:00:00.0000000Z",
"2017-01-06T00:00:00.0000000 Z","2017-01-06T00:00:00.0000000Z",
"2017-01-07T00:00:00.0000000 Z","2017-01-07T00:00:00.0000000Z",
"2017-01-08T00:00:00.0000000 Z","2017-01-08T00:00:00.0000000Z",
"2017-01-09T00:00:00.0000000 Z""2017-01-09T00:00:00.0000000Z"
]]