[英]How to sum timedeltas with resample or groupby in Pandas?
[英]How to resample timedeltas?
我一直在運行一個實驗,輸出兩列數據:
我現在想將其加載到 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.