簡體   English   中英

如何重新采樣時間增量?

[英]How to resample timedeltas?

我一直在運行一個實驗,輸出兩列數據:

  1. 實驗開始后的秒數(浮動)
  2. 一種測量。 (浮動)

我現在想將其加載到 Pandas 中以重新采樣和繪制測量值。 我以前這樣做過,但那些時間我的時間戳是從紀元或日期時間(YYY-MM-DD HH:mm:ss)格式開始的。 如果我將第一列加載為整數,我將無法做到

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

. 如果我將第一列轉換為timedelta(seconds=...)這似乎也是不可能的。 我的問題是,是否可以在不破壞紀元轉換的情況下重新采樣這些數據?

您可以使用groupby with 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

我有相同的傳感器數據結構。 第一列是自實驗開始以來的秒數,其余列是值。 這是數據結構:

              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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM