make-series-operatorn
Skapa en serie med angivna aggregerade värden längs en angiven axel.
Syntax
T| make-series
[MakeSeriesParameters] [Column=
] Aggregation [default
=
DefaultValue] [,
...] on
AxisColumn [from
start] [to
end] step
step [by
[Column=
] GroupExpression [,
...]]
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
Kolumn | string |
Namnet på resultatkolumnen. Standardvärdet är ett namn som härletts från uttrycket. | |
Standardvärde | Skalär | Ett standardvärde som ska användas i stället för saknade värden. Om det inte finns någon rad med specifika värden för AxisColumn och GroupExpression tilldelas motsvarande element i matrisen en DefaultValue. Standardvärdet är 0. | |
Aggregering | string |
✔️ | Ett anrop till en sammansättningsfunktion, till exempel count() eller avg() , med kolumnnamn som argument. Se listan över aggregeringsfunktioner. Endast aggregeringsfunktioner som returnerar numeriska resultat kan användas med operatorn make-series . |
AxisColumn | string |
✔️ | Den kolumn som serien ska sorteras efter. Vanligtvis är kolumnvärdena av typen datetime eller timespan men alla numeriska typer accepteras. |
Börja | Skalär | ✔️ | Det låga gränsvärdet för AxisColumn för var och en av de serier som ska skapas. Om start inte anges är det det första intervallet eller steget som innehåller data i varje serie. |
Slutet | Skalär | ✔️ | Det högbundna icke-inklusivvärdet för AxisColumn. Det sista indexet i tidsserien är mindre än det här värdet och kommer att starta plus heltalsmultipel som är mindre än slutet. Om end inte anges är det den övre gränsen för den sista lagerplatsen, eller steget, som har data per varje serie. |
Steg | Skalär | ✔️ | Skillnaden, eller diskretiseringsstorleken, mellan två efterföljande element i arrayen AxisColumn . En lista över möjliga tidsintervall finns i tidsintervall. |
GroupExpression | Ett uttryck över kolumnerna som tillhandahåller en uppsättning distinkta värden. Vanligtvis är det ett kolumnnamn som redan innehåller en begränsad uppsättning värden. | ||
MakeSeriesParameters | Noll eller flera blankstegsavgränsade parametrar i form av Namnvärde= som styr beteendet. Se Stöd för att skapa serieparametrar. |
Anteckning
Parametrarna start, slut och steg används för att skapa en matris med AxisColumn-värden . Matrisen består av värden mellan start och slut, där stegvärdet representerar skillnaden mellan ett matriselement till nästa. Alla aggregeringsvärden sorteras till den här matrisen.
Stöd för att skapa serieparametrar
Name | Beskrivning |
---|---|
kind |
Ger standardresultat när indata för make-series-operatorn är tom. Värde: nonempty |
hint.shufflekey=<key> |
Frågan shufflekey delar frågebelastningen på klusternoder med hjälp av en nyckel för att partitioneras data. Se shuffle-fråga |
Anteckning
Matriserna som genereras av make-series är begränsade till 1048576 värden (2^20). Om du försöker generera en större matris med make-series skulle det resultera i antingen ett fel eller en trunkerad matris.
Alternativ syntax
T| make-series
[Column=
] Aggregation [default
=
DefaultValue] [,
...] on
AxisColumnin
range(
Börja,
Stanna,
Steg)
[by
[Kolumn=
] GroupExpression [,
...]]
Den genererade serien från den alternativa syntaxen skiljer sig från huvudsyntaxen i två aspekter:
- Stoppvärdet är inkluderande.
- Gruppering av indexaxeln genereras med bin() och inte bin_at(), vilket innebär att start kanske inte ingår i den genererade serien.
Vi rekommenderar att du använder huvudsyntaxen för make-series och inte den alternativa syntaxen.
Returer
Indataraderna är ordnade i grupper som har samma värden för uttrycken by
bin_at(
ochstartuttrycket)
för AxisColumn-steget,
,
. Sedan beräknas de angivna aggregeringsfunktionerna över varje grupp och skapar en rad för varje grupp. Resultatet innehåller kolumnerna by
, kolumnen AxisColumn och även minst en kolumn för varje beräknad aggregering. (Sammansättningar över flera kolumner eller icke-numeriska resultat stöds inte.)
Det här mellanliggande resultatet har lika många rader som det finns distinkta kombinationer av by
och bin_at(
AxisColumn-stegstartvärden,
)
,
.
Slutligen ordnas raderna från det mellanliggande resultatet i grupper som har samma värden för uttrycken by
och alla aggregerade värden i matriser (värden av dynamic
typen). För varje aggregering finns det en kolumn som innehåller dess matris med samma namn. Den sista kolumnen är en matris som innehåller värdena för AxisColumn binned enligt det angivna steget.
Anteckning
Även om du kan ange godtyckliga uttryck för både sammansättnings- och grupperingsuttrycken är det mer effektivt att använda enkla kolumnnamn.
Lista över sammansättningsfunktioner
Funktion | Beskrivning |
---|---|
avg() | Returnerar ett genomsnittsvärde i hela gruppen |
avgif() | Returnerar ett medelvärde med predikatet för gruppen |
count() | Returnerar ett antal av gruppen |
countif() | Returnerar ett antal med predikatet för gruppen |
dcount() | Returnerar ett ungefärligt distinkt antal gruppelement |
dcountif() | Returnerar ett ungefärligt distinkt antal med predikatet för gruppen |
max() | Returnerar det maximala värdet i gruppen |
maxif() | Returnerar det maximala värdet med predikatet för gruppen |
min() | Returnerar minimivärdet i gruppen |
minif() | Returnerar minimivärdet med predikatet för gruppen |
percentile() | Returnerar percentilvärdet i gruppen |
take_any() | Returnerar ett slumpmässigt värde som inte är tomt för gruppen |
stdev() | Returnerar standardavvikelsen i gruppen |
sum() | Returnerar summan av elementen i gruppen |
sumif() | Returnerar summan av elementen med predikatet för gruppen |
variance() | Returnerar variansen i gruppen |
Lista över serieanalysfunktioner
Funktion | Beskrivning |
---|---|
series_fir() | Använder Finite Impulse Response-filter |
series_iir() | Använder Infinite Impulse Response-filter |
series_fit_line() | Hittar en rät linje som är den bästa uppskattningen av indata |
series_fit_line_dynamic() | Hittar en linje som är den bästa uppskattningen av indata och returnerar dynamiskt objekt |
series_fit_2lines() | Hittar två rader som är den bästa uppskattningen av indata |
series_fit_2lines_dynamic() | Hittar två rader som är den bästa uppskattningen av indata och returnerar dynamiska objekt |
series_outliers() | Poäng för avvikelsepunkter i en serie |
series_periods_detect() | Hittar de viktigaste perioderna som finns i en tidsserie |
series_periods_validate() | Kontrollerar om en tidsserie innehåller periodiska mönster för angivna längder |
series_stats_dynamic() | Returnera flera kolumner med gemensam statistik (min/max/varians/stdev/average) |
series_stats() | Genererar ett dynamiskt värde med vanlig statistik (min/max/variance/stdev/average) |
En fullständig lista över serieanalysfunktioner finns i: Seriebearbetningsfunktioner
Lista över serieinterpoleringsfunktioner
Funktion | Beskrivning |
---|---|
series_fill_backward() | Utför bakåtfyllningsinterpolation av saknade värden i en serie |
series_fill_const() | Ersätter saknade värden i en serie med ett angivet konstantvärde |
series_fill_forward() | Utför vidarebefordrande fyllningsinterpolation av saknade värden i en serie |
series_fill_linear() | Utför linjär interpolering av saknade värden i en serie |
- Obs! Interpolationsfunktioner förutsätter
null
som standard att det saknas ett värde. Angedefault=
därför double(null
) imake-series
om du tänker använda interpoleringsfunktioner för serien.
Exempel
En tabell som visar matriser med tal och genomsnittliga priser för varje frukt från varje leverantör som sorteras efter tidsstämpeln med angivet intervall. Det finns en rad i utdata för varje distinkt kombination av frukt och leverantör. Utdatakolumnerna visar frukt, leverantör och matriser för: antal, medelvärde och hela tidslinjen (från 2016-01-01 till 2016-01-10). Alla matriser sorteras efter respektive tidsstämpel och alla luckor fylls med standardvärden (0 i det här exemplet). Alla andra indatakolumner ignoreras.
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
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_metric | timestamp |
---|---|
[ 4.0, 3.0, 5.0, 0.0, 10.5, 4.0, 3.0, 8.0, 6.5 ] | [ "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:000: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" ] |
När indata till make-series
är tomma ger standardbeteendet make-series
för ett tomt resultat.
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
| take 0
| make-series avg(metric) default=1.0 on timestamp from stime to etime step interval
| count
Resultat
Antal |
---|
0 |
Om du använder kind=nonempty
i make-series
genereras ett icke-tomt resultat av standardvärdena:
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
| take 0
| make-series kind=nonempty avg(metric) default=1.0 on timestamp from stime to etime step interval
Resultat
avg_metric | timestamp |
---|---|
[ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1,0 ] |
[ "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" ] |
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för