如何重新采样timedeltas?

时间:2013-11-28 15:39:38

标签: python pandas

我一直在运行一个实验,输出两列数据:

    自实验开始以来
  1. 秒(浮动)
  2. 测量。 (浮点型)
  3. 我现在想将其加载到Pandas中以重新采样并绘制测量值。我以前做过这个,但那些时间我的时间戳是从纪元或日期时间(YYY-MM-DD HH:mm:ss)格式开始的。如果我将我的第一列作为整数加载我无法做到

    data.resample('5Min', how='mean')
    

    。如果我将第一列转换为timedelta(seconds=...),似乎也不可能。我的问题是,是否可以重新采样这些数据而不会破坏时代转换?

2 个答案:

答案 0 :(得分:3)

您可以groupby使用time // period来执行此操作:

import pandas as pd
import numpy as np

t = np.random.rand(10000)*3600
t.sort()
v = np.random.rand(10000)

df = pd.DataFrame({"time":t, "value":v})

period = 5*60
s = df.groupby(df.time // period).value.mean()
s.index *= period

答案 1 :(得分:0)

我具有相同的传感器数据结构。第一列是自实验开始以来的秒数,其余列为值。 这是数据结构:

              time        x           y          z
      0     0.015948    0.403931    0.449005    -0.796860
      1     0.036006    0.403915    0.448029    -0.795395
      2     0.055885    0.404907    0.446548    -0.795853

这对我有用: 将时间转换为时间增量:

df.time=pd.to_timedelta(df.time,unit="s")

set the time as index

df.set_index("time",inplace=True)

重新采样到您想要的频率

df.resample("40ms").mean()