2017-11-11 9 views
1

のn行ごとの合計を取る方法と仮定パンダ:シリーズ

s = pd.Series(range(50))

0  0 
1  1 
2  2 
3  3 
... 
48  48 
49  49 

にはどうすればn行ごとの合計で構成された新シリーズを得ることができますか?

n = 5のとき、期待される結果は以下のようになります。

0  10 
1  35 
2  60 
3  85 
... 
8  210 
9  235 

のpythonでLOCまたはILOCとループを使用している場合は、もちろんしかし、私はそれがパンダの方法で簡単に行うことができると信じて、達成することができます。

また、これは非常に単純な例です。シーケンスの説明は期待していません:)。私が試している実際のデータシリーズには、時間インデックスと1秒ごとに値として発生したイベントの数があります。

+0

[パンダシリーズでのルーピングのためのより多くのPythonic/Pandorableアプローチ](https://stackoverflow.com/questions/41485471/more-pythonic-pandorable-approach-to-looping-over-a-pandas-シリーズ) – miradulo

+0

miraduloさん、ありがとうございました。後ほど参考にしておこう。 – HirofumiTamori

答えて

1

groupby + sum

s.groupby(s.index // 5 * 5).sum() 

0  10 
5  35 
10  60 
15  85 
20 110 
25 135 
30 160 
35 185 
40 210 
45 235 

チャンク応じ5のグループへのインデックスおよびグループ。

関連する問題