与えられたパンダで時系列を集約することは、私はウィンドウサイズ
a = pandas.Series([1,2,3,4,5,6,7,8])
a
Out[313]:
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
dtype: int64
このデータを持っていると言うことができます私は、一度にグループのデータn
行集計データを好むし、それらを合計します。だからn=2
新しいシリーズは{3,7,11,15}
のようになります。
与えられたパンダで時系列を集約することは、私はウィンドウサイズ
a = pandas.Series([1,2,3,4,5,6,7,8])
a
Out[313]:
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
dtype: int64
このデータを持っていると言うことができます私は、一度にグループのデータn
行集計データを好むし、それらを合計します。だからn=2
新しいシリーズは{3,7,11,15}
のようになります。
この試してください:あなたがパンダrolling meanを使用して、次のようにそれを得ることができ
In [39]: a.groupby(a.index//2).sum()
Out[39]:
0 3
1 7
2 11
3 15
dtype: int64
In [41]: a.index//2
Out[41]: Int64Index([0, 0, 1, 1, 2, 2, 3, 3], dtype='int64')
のn = 3
In [42]: n=3
In [43]: a.groupby(a.index//n).sum()
Out[43]:
0 6
1 15
2 15
dtype: int64
In [44]: a.index//n
Out[44]: Int64Index([0, 0, 0, 1, 1, 1, 2, 2], dtype='int64')
を: n
場合は、あなたの間隔である:
sums = list(a.rolling(n).sum()[n-1::n])
# Optional !!!
rem = len(a)%n
if rem != 0:
sums.append(a[-rem:].sum())
最初の行は、データが適切な場合は完全に行を追加しますグループに分かれていれば、残りの合計を追加することもできます(あなたの好みによって異なります)。 たとえば、上記の場合、n=3
の場合、{6, 15, 15}
または{6, 15}
のいずれかを取得することができます。上のコードは前者の場合です。オプションの部分をスキップすると、ちょうど{6, 15}
となります。
あなたは{3,7,11,15}を意味しますか?奇数の要素がある場合はどうなりますか?どのようにそれらを追加する予定ですか? – Kevad