2017-12-03 1 views
1

私はこのようになり、データがあります:私はそれらを置き換えることによって、私の値の「解像度」を減らしたいどのようにして、パンダの平均値と時間軸の値を置き換えることができますか?

timestamp value 
0  12345 0.5 
1  12346 0.5 
2  12347 3.0 
3  12348 3.0 
4  12349 6.0 
... 

:このような何か

timestamp value 
0  12345 0.0 
1  12346 1.0 
2  12347 4.0 
3  12348 2.0 
4  12349 6.0 
... 

を、私は例えばにそれを有効にします一定の時間範囲の平均値である。これは次のようになります

df = df.groupby(df.index // N).mean() 
Nはことを除いて、行数を意味することです

私は通称パンダの行(の数を保持したい
  1. :「パッド」/ "ffill "それらの手段)。
  2. (1)に関連して、タイムスタンプは、値とともに平均値を取得するのではなく、元のままにすべきです。
  3. 理想的には、タイムスタンプが等間隔であることを保証できないため、N行ではなく時間範囲(分、時間、日など)でグループ化することをお勧めします。

私はこれが少し複雑で、さまざまなステップで実行できることを認識していますが、私はパンダを使いこなしていて、簡単な組み込みステップがあることを望んでいました。どんなポインタも大変ありがとう!

答えて

1

これを試してみてください:

In [12]: df['value'] = df['value'].groupby(np.arange(len(df)) // N).transform('mean') 
In [13]: df 
Out[13]: 
    timestamp value 
0 12345 0.5 
1 12346 0.5 
2 12347 3.0 
3 12348 3.0 
4 12349 6.0 
関連する問題